#include "IppImage\IppFilter.h" #include "GaussianDlg.h" … void CImageToolDoc::OnFilterMean() { CONVERT_DIB_TO_BYTEIMAGE(m_Dib, imgSrc) IppByteImage imgDst; IppFilterMean(imgSrc, imgDst); CONVERT_IMAGE_TO_DIB(imgDst, dib) AfxPrintInfo(_T("[평균 값 필터] 입력 영상: %s"), GetTitle()); AfxNewBitmap(dib); } void CImageToolDoc::OnFilterWeightedMean() { CONVERT_DIB_TO_BYTEIMAGE(m_Dib, imgSrc) IppByteImage imgDst; IppFilterWeightedMean(imgSrc, imgDst); CONVERT_IMAGE_TO_DIB(imgDst, dib) AfxPrintInfo(_T("[가중 평균 값 필터] 입력 영상: %s"), GetTitle()); AfxNewBitmap(dib); } void CImageToolDoc::OnFilterGaussian() { CGaussianDlg dlg; if (dlg.DoModal() == IDOK) { CONVERT_DIB_TO_BYTEIMAGE(m_Dib, imgSrc) IppFloatImage imgDst; IppFilterGaussian(imgSrc, imgDst, dlg.m_fSigma); CONVERT_IMAGE_TO_DIB(imgDst, dib) AfxPrintInfo(_T("[가우시안 필터] 입력 영상: %s, Sigma: %4.2f"), GetTitle(), dlg.m_fSigma); AfxNewBitmap(dib); } }
소스 8-7의 OnFilterMean, OnFilterWeightedMean, OnFilterGaussian 이벤트 처리 함수들에서는 각각 IppFilterMean, IppFilterWeightedMean, IppFilterGaussian 함수를 호출하여 영상을 부드럽게 만들고, 필터링 결과 영상은 AfxNewImage 함수를 이용하여 새 창으로 나타난다. OnFilterGaussian 함수에서는 가우시안 필터 대화 상자를 띄워서, 사용자로부터 표준 편차 값을 입력받아 필터링을 수행한다. ImageToolDoc.cpp 파일의 상단에는 필터링 관련 함수들을 호출하기 한 IppFilter.h 파일과 가우시안 필터 대화 상자 사용을 위한 GaussianDLG.h 파일을 각각 포함(#include)하였다.