코드 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 영상을 모두 화면에 출력합니다.

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