Mat 클래스 생성자에 영상의 크기 정보를 지정할 때 가로 크기, 세로 크기 순서가 아니라 세로 크기, 가로 크기 순서인 점을 주의하기 바랍니다. 앞 코드에서 img2와 img3은 서로 크기는 같지만 타입이 다른 영상입니다. img2 객체는 unsigned char 자료형을 사용하고 한 개의 채널이 있는 영상을 표현합니다. img3 객체는 타입이 CV_8UC3이므로 unsigned char 자료형을 사용하고 세 개의 채널이 있는 영상입니다. 보통 CV_8UC1 타입은 그레이스케일 영상에서 사용하고, CV_8UC3 타입은 트루컬러 영상에 사용합니다.
Mat 클래스 생성자에서 행렬의 크기를 지정할 때 Size 클래스를 사용할 수도 있습니다.
Mat::Mat(Size size, int type); |
|
• size |
새로 만들 행렬의 크기. Size(cols, rows) 또는 Size(width, height) |
• type |
새로 만들 행렬의 타입 |
여기서 사용된 Size 클래스는 2차원 사각형(또는 영상, 행렬)의 가로, 세로 크기를 표현하기 위해 사용하는 OpenCV 클래스입니다. Size 클래스의 생성자는 보통 두 개의 인자를 받으며, 가로 크기와 세로 크기 순서로 값을 지정합니다. 그러므로 가로 크기가 640, 세로 크기가 480인 3채널 컬러 영상을 생성하려면 다음과 같이 코드를 작성합니다.
Mat img4(Size(640, 480), CV_8UC3); // Size(width, height)