코드 7-4 언샤프 마스크 필터링 예제 코드 [ch07/sharpen]

    01    void unsharp_mask()
    02    {
    03        Mat src = imread("rose.bmp", IMREAD_GRAYSCALE);
    04     
    05        if (src.empty()) {
    06            cerr << "Image load failed!" << endl;
    07            return;
    08        }
    09     
    10        imshow("src", src);
    11     
    12        for (int sigma = 1; sigma <= 5; sigma++) {
    13            Mat blurred;
    14            GaussianBlur(src, blurred, Size(), sigma);
    15     
    16            float alpha = 1.f;
    17            Mat dst = (1 + alpha) * src - alpha * blurred;
    18     
    19            String desc = format("sigma: %d", sigma);
    20            putText(dst, desc, Point(10, 30), FONT_HERSHEY_SIMPLEX, 1.0,
    21                    Scalar(255), 1, LINE_AA);
    22     
    23            imshow("dst", dst);
    24            waitKey();
    25        }
    26     
    27        destroyAllWindows();
    28    }

     

    12~24행 가우시안 필터의 표준 편차 sigma 값을 1부터 5까지 증가시키면서 언샤프 마스크 필터링을 수행합니다.

    13~14행 가우시안 필터를 이용한 블러링 영상을 blurred에 저장합니다.

    16~17행 언샤프 마스크 필터링을 수행합니다.

    19~21행 샤프닝 결과 영상 dst에 사용된 sigma 값을 출력합니다.

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