Mat 행렬에서 어떤 자료형을 사용하는지에 대한 정보를 깊이 "depth" 라고 부른다.
C/C++ 기본 자료형 중에서 unsigned char, signed char, unsigned short, signed short, int float, double 자료형을 지원하고, openCV 4 부터 16비트 실수형도 지원한다. Mat 행렬의 깊이를 다음과 같이 형식을 이용하여 나타낸다.
CV_<bit-depth>{U:S:F}
bit-depth -> 비트 수, {U:S:F} -> U: unsigned, S: signed, F: float
예를 들어 unsigned char 자료형을 사용하면 CV_8U, float 자료형을 사용하면 CV_32F 로 나타낼 수 있다.
Mat 행렬은 원소를 하나만 갖는 것이 아니라 2개 이상도 갖을 수 있다. 우리는 원소를 구성하는 각각의 값을 채널 "channel"이라고 부른다. 여기서 하나의 채널을 구성하는 값은 모두 같은 자료형을 사용해야 한다. 예를 들면 그레이스케일 영상은 하나의 채널을 사용하고, 트루컬러 영상은 3개의 채널을 사용한다고 볼 수 있다. 여기서 행렬의 깊이와 채널을 합쳐서 Mat 객체의 타입 "type"이라 부른다. 이것 역시 다음과 같은 형식을 이용하여 나타낸다.
CV_<bit-depth>{U:S:F}C(<number_of_channels>)
bit-depth -> 비트 수, {U:S:F} -> U: unsigned, S: signed, F: float, <number_of_channels> -> 채널의 개수
예를 들어 unsigned char 자료형을 사용하는 컬러 영상이라면 CV_8UC3 타입이라고 말할 수 있다.
새로운 행렬을 생성할 때에는 행렬의 타입 정보를 명시적으로 지정해야 한다.
더 자세한 설명은 openCV 문서 페이지에서 확인 가능합니다.
https://docs.opencv.org/3.4/d3/d63/classcv_1_1Mat.html
OpenCV: cv::Mat Class Reference
n-dimensional dense array class More... #include Mat () CV_NOEXCEPT Mat (int rows, int cols, int type) Mat (Size size, int type) Mat (int rows, int cols, int type, const Scalar &s) Mat (Size size, int type, const Scalar &s) Mat (
docs.opencv.org
본 내용은 < OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝(저자 : 황선규) > 내용을 참고하여 작성되었습니다.
https://book.naver.com/bookdb/book_detail.nhn?bid=14722394
'프로그래밍 > 컴퓨터 비전 with openCV' 카테고리의 다른 글
영상의 필터링 (0) | 2022.04.16 |
---|---|
Mat 클래스 ( 행렬의 복사와 부분 행렬 추출 ) (0) | 2022.03.21 |
Mat 클래스 ( 행렬의 생성과 초기화 ) (0) | 2022.03.17 |
Mat 클래스 ( 개요 - 특징과 멤버 변수 ) (0) | 2022.03.16 |