더북(TheBook)

앞에서 소개한 bitwise_and(), bitwise_or(), bitwise_xor(), bitwise_not() 함수를 이용하여 영상의 논리 연산을 수행하는 예제 프로젝트 소스 코드를 코드 6-2에 나타냈습니다. 코드 6-2는 lenna.bmp 파일과 square.bmp 파일을 이용하여 논리곱, 논리합, 배타적 논리합 연산을 수행하고, lenna.bmp 영상에 대해서 부정 연산을 수행한 후 그 결과를 화면에 출력합니다. 이 예제 코드와 사용된 영상 파일은 내려받은 예제 파일 중 ch06/logical 프로젝트 폴더에서 확인할 수 있습니다.

코드 6-2 영상의 논리 연산 예제 프로그램 [ch06/logical]

01    #include "opencv2/opencv.hpp"
02    #include <iostream>
03     
04    using namespace cv;
05    using namespace std;
06     
07    int main(void)
08    {
09        Mat src1 = imread("lenna256.bmp", IMREAD_GRAYSCALE);
10        Mat src2 = imread("square.bmp", IMREAD_GRAYSCALE);
11     
12        if (src1.empty() || src2.empty()) {
13            cerr << "Image load failed!" << endl;
14            return -1;
15        }
16     
17        imshow("src1", src1);
18        imshow("src2", src2);
19     
20        Mat dst1, dst2, dst3, dst4;
21     
22        bitwise_and(src1, src2, dst1);
23        bitwise_or(src1, src2, dst2);
24        bitwise_xor(src1, src2, dst3);
25        bitwise_not(src1, dst4);
26     
27        imshow("dst1", dst1);
28        imshow("dst2", dst2);
29        imshow("dst3", dst3);
30        imshow("dst4", dst4);
31        waitKey();
32     
33        return 0;
34    }

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