더북(TheBook)

이 코드는 mat4 영상의 모든 픽셀을 파란색에 해당하는 Scalar(255, 0, 0)으로 설정하고, 행렬 mat5의 모든 원소 값은 1.f로 설정합니다.

지금까지 설명한 다양한 Mat 행렬 생성과 원소 값 초기화 예제 코드를 모아서 코드 3-7에 나타냈습니다. 코드 3-7의 MatOp1() 함수는 실제로 실행되더라도 아무런 출력을 하지 않으며, 다만 나중에 Mat 객체를 생성해야 할 경우에 참고할 수 있도록 예제 코드를 모아 놓은 것입니다. MatOp1() 함수에서 사용된 모든 변수는 지역 변수로 선언되었으므로 함수가 종료되면 자동으로 소멸됩니다.

코드 3-7 Mat 객체 생성 [ch03/MatOp]

01    void MatOp1()
02    {
03        Mat img1;    // empty matrix
04     
05        Mat img2(480, 640, CV_8UC1);          // unsigned char, 1-channel
06        Mat img3(480, 640, CV_8UC3);          // unsigned char, 3-channels
07        Mat img4(Size(640, 480), CV_8UC3);    // Size(width, height)
08     
09        Mat img5(480, 640, CV_8UC1, Scalar(128));          // initial values, 128
10        Mat img6(480, 640, CV_8UC3, Scalar(0, 0, 255));    // initial values, red
11     
12        Mat mat1 = Mat::zeros(3, 3, CV_32SC1);    // 0's matrix
13        Mat mat2 = Mat::ones(3, 3, CV_32FC1);     // 1's matrix
14        Mat mat3 = Mat::eye(3, 3, CV_32FC1);      // identity matrix
15     
16        float data[] = { 1, 2, 3, 4, 5, 6 };
17        Mat mat4(2, 3, CV_32FC1, data);
18     
19        Mat mat5 = (Mat_<float>(2, 3) << 1, 2, 3, 4, 5, 6);
20        Mat mat6 = Mat_<uchar>({2, 3}, { 1, 2, 3, 4, 5, 6 });
21     
22        mat4.create(256, 256, CV_8UC3); // uchar, 3-channels
23        mat5.create(4, 4, CV_32FC1);    // float, 1-channel
24     
25        mat4 = Scalar(255, 0, 0);
26        mat5.setTo(1.f);
27    }

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