더북(TheBook)

실제 영상에 대해 엠보싱 필터링을 수행하는 소스 코드를 코드 7-1에 나타냈습니다. 코드 7-1의 filter_embossing() 함수는 rose.bmp 장미 영상에 엠보싱 필터링을 수행하고 그 결과를 화면에 출력합니다. filter_embossing() 함수가 정의된 소스 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch07/filter 프로젝트에서 확인할 수 있습니다.

코드 7-1 엠보싱 필터링 예제 [ch07/filter]

01    void filter_embossing()
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        float data[] = { -1, -1, 0, -1, 0, 1, 0, 1, 1 };
11        Mat emboss(3, 3, CV_32FC1, data);
12     
13        Mat dst;
14        filter2D(src, dst, -1, emboss, Point(-1, -1), 128);
15     
16        imshow("src", src);
17        imshow("dst", dst);
18     
19        waitKey(0);
20        destroyAllWindows();
21    }

 

3행 rose.bmp 영상을 그레이스케일 형식으로 불러옵니다.

10~11행 data 배열을 이용하여 3×3 크기의 엠보싱 필터 마스크 행렬 emboss를 생성합니다.

14행 filter2D() 함수를 이용하여 엠보싱 필터링을 수행합니다. 이때 filter2D() 함수 여섯 번째 인자에 128을 지정하여 필터링 결과 영상에 128을 더합니다.

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