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