더북(TheBook)

코드 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 값을 출력합니다.

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