지금까지 Mat 클래스 정의와 Mat 행렬의 깊이, 채널, 타입에 대해 알아봤습니다. 다음 절부터 Mat 클래스의 다양한 생성자와 멤버 함수 사용법을 예제 코드와 함께 알아보겠습니다. 이 절에서 설명하는 모든 예제의 전체 코드는 내려받은 예제 파일 중 ch03/MatOp 프로젝트에서 확인할 수 있습니다.
Note
OpenCV는 C/C++에서 사용하는 기본 자료형의 이름을 typedef 구문을 이용하여 새롭게 정의하여 사용합니다. 예를 들어 OpenCV에서 uchar 자료형은 unsigned char를 재정의한 이름입니다. 이처럼 C/C++ 기본 자료형에 새로운 이름을 부여하는 것은 키보드로 타이핑하기 쉽게 하려는 이유도 있지만 OpenCV 라이브러리를 다양한 운영 체제에서 통일성 있게 활용하기 위한 목적도 있습니다. OpenCV에서 주로 사용하는 자료형과 그 의미를 표 3-1에 정리하였습니다.
▼ 표 3-1 OpenCV에서 사용하는 주요 자료형
OpenCV 자료형 |
설명 |
OpenCV 자료형 |
설명 |
schar |
부호 있는 1바이트 정수 |
int64 |
부호 있는 8바이트 정수 |
uchar |
부호 없는 1바이트 정수 |
uint64 |
부호 없는 8바이트 정수 |
short |
부호 있는 2바이트 정수 (C/C++ 기본 자료형) |
float16_t |
(부호 있는) 2바이트 실수 |
ushort |
부호 없는 2바이트 정수 |
float |
(부호 있는) 4바이트 실수 (C/C++ 기본 자료형) |
int |
부호 있는 4바이트 정수 (C/C++ 기본 자료형) |
double |
(부호 있는) 8바이트 실수 (C/C++ 기본 자료형) |
uint |
부호 없는 4바이트 정수 |