MFC (Microsoft Foundation Classes) based C++ application for implementation of image processing algorithms
After running
Visual Studio Installer, selectMore-Import configurationmenu to load.vsconfigfile, and then proceed with the installation.
A directory named
imagescontains headerlessRAWimages andBMPimage samples.
ImageProcessing.sln 안에는 SDI(단일 문서 인터페이스) 기반 MFC 애플리케이션 프로젝트 두 개가 들어 있으며, 각각 다른 이미지 포맷과 처리 기법을 다룹니다.
컬러 BMP 이미지를 불러와 색공간 변환, 공간 필터링, 히스토그램, 프레임(영상) 처리를 실습하는 프로젝트입니다.
- 색공간 변환:
CIP.cpp의RGB2YUV/YUV2RGB함수로 RGB ↔ YUV 변환 (CBMPView::OnColormodelRgb2yuv) - 공간 필터링:
CFilterDlg대화상자에서 커널 크기/시그마를 조절하며 아래 필터를 적용- Blurring (Average Filter), Gaussian Smoothing, Sharpening, High Frequency Band Pass Filter
- 히스토그램:
CHistogramDlg가CalcHist/NormHist로 채널별 히스토그램을 계산해 그래프로 시각화 (CBMPView::OnHistogram) - 프레임 처리:
CBMPDoc::OnFrameprocessingMotionestimation(블록 기반 움직임 추정),OnFrameprocessingMotioncompensation(움직임 보상),OnFrameprocessingSimpledifference(단순 프레임 차분) - 비트맵 입출력:
CDib클래스가 DIB 로드/저장/픽셀 접근을 담당,RGBBYTE구조체로 픽셀 단위 RGB 표현 - 샘플 이미지:
images/BMP(LenaMask_512x512.bmp,hole.bmp,hole2.bmp,seven.bmp,COLOR/GRAYSCALE/MEMC폴더)
헤더 없는(headerless) RAW 그레이스케일 이미지를 불러와 점 단위, 히스토그램, 영역 단위 처리 기법을 실습하는 프로젝트입니다.
- 픽셀(점) 단위 처리 (
CRAWDoc::OnPixelpointprocessing*)- Add, Sub (밝기 가감), Inverse (반전), Binarization (이진화), LogTransform (로그 변환), GammaCorrection (감마 보정), Posterization (색상 단계화), BitPlaneSlicing (비트평면 분리), ContrastStretching (대비 스트레칭), Dissolve (디졸브 합성)
- 값 입력이 필요한 연산은
CInputDialog로 파라미터를 입력받음
- 히스토그램 처리 (
CRAWDoc::OnHistogramprocessing*)- Stretching (히스토그램 스트레칭), EndInSearch (End-in Search 스트레칭), Equalization (히스토그램 평활화), Specification (히스토그램 명세화/매칭)
- 영역(region) 처리:
OnRegionprocessingConvolution— 커널 기반 컨볼루션 필터링 - 이미지 입출력:
CRAWDoc이 지정된 폭/높이로 헤더 없는 RAW 파일을 직접 읽고 씀 - 샘플 이미지:
images/RAW(LENA256.RAW,LENNA512.raw,peppers512.raw,circle512.raw,semiconduct512.raw,flower512.raw등 다양한 크기의 헤더리스 그레이스케일 RAW 파일)
ImageProcessing.sln을 열면 BMP, RAW 두 프로젝트가 함께 표시됩니다. 실행할 프로젝트를 마우스 우클릭 후 시작 프로젝트로 설정으로 지정한 뒤 F5로 실행하면, 메뉴에서 해당 이미지 파일을 열어(File > Open) 위 기능들을 메뉴로 조작할 수 있습니다.
This repository states that many of the contents of https://github.com/datakun/ImageToolBox were referenced.
