더북(TheBook)

코드 3-8 행렬의 다양한 복사 방법 예제 [ch03/MatOp]

01    void MatOp2()
02    {
03        Mat img1 = imread("dog.bmp");
04     
05        Mat img2 = img1;
06        Mat img3;
07        img3 = img1;
08     
09        Mat img4 = img1.clone();
10        Mat img5;
11        img1.copyTo(img5);
12     
13        img1.setTo(Scalar(0, 255, 255));    // yellow
14     
15        imshow("img1", img1);
16        imshow("img2", img2);
17        imshow("img3", img3);
18        imshow("img4", img4);
19        imshow("img5", img5);
20     
21        waitKey();
22        destroyAllWindows();
23    }

 

3행 dog.bmp 강아지 영상을 불러와서 img1에 저장합니다.

5~7행 복사 생성자와 대입 연산자를 이용하여 img1의 복사본 영상 img2, img3을 생성합니다(얕은 복사).

9~11행 Mat::clone()Mat::copyTo() 함수를 이용하여 img1의 복사본 영상 img4, img5를 생성합니다(깊은 복사).

13행 img1 영상의 모든 픽셀을 Scalar(0, 255, 255)에 해당하는 노란색으로 설정합니다.

15~19행 img1~img5 영상을 모두 새 창으로 출력합니다.

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