소스 8-7 [평균 값 필터], [가중 평균 값 필터], [가우시안 필터] 메뉴 항목들에 대한 이벤트 처리 함수(ImageToolDoc.cpp)
    #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)하였다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.