Skip to content

yvvyee/ImageProcessingMFC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImageProcessingMFC

MFC (Microsoft Foundation Classes) based C++ application for implementation of image processing algorithms


Prerequisites

Visual Studio Community 2022

After running Visual Studio Installer, select More - Import configuration menu to load .vsconfig file, and then proceed with the installation.

vsinstaller


Sample Images

A directory named images contains headerless RAW images and BMP image samples.


프로젝트별 실습 내용

ImageProcessing.sln 안에는 SDI(단일 문서 인터페이스) 기반 MFC 애플리케이션 프로젝트 두 개가 들어 있으며, 각각 다른 이미지 포맷과 처리 기법을 다룹니다.

BMP

컬러 BMP 이미지를 불러와 색공간 변환, 공간 필터링, 히스토그램, 프레임(영상) 처리를 실습하는 프로젝트입니다.

  • 색공간 변환: CIP.cppRGB2YUV/YUV2RGB 함수로 RGB ↔ YUV 변환 (CBMPView::OnColormodelRgb2yuv)
  • 공간 필터링: CFilterDlg 대화상자에서 커널 크기/시그마를 조절하며 아래 필터를 적용
    • Blurring (Average Filter), Gaussian Smoothing, Sharpening, High Frequency Band Pass Filter
  • 히스토그램: CHistogramDlgCalcHist/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 폴더)

RAW

헤더 없는(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 파일)

Visual Studio Solution Configurations

ImageProcessing.sln을 열면 BMP, RAW 두 프로젝트가 함께 표시됩니다. 실행할 프로젝트를 마우스 우클릭 후 시작 프로젝트로 설정으로 지정한 뒤 F5로 실행하면, 메뉴에서 해당 이미지 파일을 열어(File > Open) 위 기능들을 메뉴로 조작할 수 있습니다.


References

This repository states that many of the contents of https://github.com/datakun/ImageToolBox were referenced.

About

MFC (Microsoft Foundation Classes) based C++ application for implementation of image processing algorithms

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors