코드 7-7 미디언 필터링 예제 코드 [ch07/noise]
01 void filter_median() 02 { 03 Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE); 04 05 if (src.empty()) { 06 cerr << "Image load failed!" << endl; 07 return; 08 } 09 10 int num = (int)(src.total() * 0.1); 11 for (int i = 0; i < num; i++) { 12 int x = rand() % src.cols; 13 int y = rand() % src.rows; 14 src.at<uchar>(y, x) = (i % 2) * 255; 15 } 16 17 Mat dst1; 18 GaussianBlur(src, dst1, Size(), 1); 19 20 Mat dst2; 21 medianBlur(src, dst2, 3); 22 23 imshow("src", src); 24 imshow("dst1", dst1); 25 imshow("dst2", dst2); 26 27 waitKey(); 28 destroyAllWindows(); 29 }
• 10~15행 src 영상에서 10%에 해당하는 픽셀 값을 0 또는 255로 설정합니다.
• 17~18행 표준 편차가 1인 가우시안 필터링을 수행하여 dst1에 저장합니다.
• 20~21행 크기가 3인 미디언 필터를 실행하여 dst2에 저장합니다.
• 23~25행 src, dst1, dst2 영상을 모두 화면에 출력합니다.