1. 개요
- OpenCV 라이브러리에서 가장 많이 사용하는 클래스
- 일반적인 2차원 행렬뿐 아니라 고차원 행렬 표현 가능, 한 개 이상의 채널을 가질 수 있음.
- 정수, 실수 등으로 구성된 행렬 또는 벡터, 그레이스케일, 컬러 영상, 경우에 따라 벡터 필드, 포인트 클라우드, 텐서 등 정보 저장 가능
- Mat 클래스의 멤버 변수
- Mat::dims : Mat 행렬의 차원을 의미, ex) 영상처럼 2차원 행렬일 경우 값은 2
- Mat::rows : 행렬의 행 개수 - 2차원 행렬일 경우에만 의미있고 3차원 이상일 경우 -1로 저장
- Mat::cols : 행렬의 열 개수 - 2차원 행렬일 경우에만 의미있고 3차원 이상일 경우 -1로 저장
- Mat::size : 3차원 이상의 행렬의 크기 정보 참조
- Mat::data : 행렬의 원소 데이터가 저장되어 있는 메모리 공간을 가리키는 포인터형 멤버 변수
- 행렬에 아무것도 저장되어 있지 않다면 Mat::data는 0값
- Mat 클래스의 모든 멤버 변수는 public 접근 지시자로 선언, 외부에서 직접 접근 가능.
CV_<bit-depth>{U|S|F}
- Mat 행렬의 깊이(매크로 상수로 표현)
- <bit-depth>에는 8, 16, 32, 64의 숫자를 지정, 이는 원소 값 하나의 비트 수를 의미
- {U|S|F}에서 U는 부호 없는 정수형, S는 부호 있는 정수형, F는 부동 소수형을 의미
- Mat 행렬 원소는 하나의 값을 가질 수도 있고, 여러 개로 구성된 값을 가질 수도 있음.
- Mat 행렬 원소를 구성하는 각각의 값을 채널이라 함.
- 하나의 행렬을 구성하는 각 채널은 모두 같은 자료형을 사용해야 함.
CV_<bit-depth>{U|S|F}C(<number_of_channels>)
- Mat 객체의 타입 : Mat 행렬의 깊이 정보와 채널 수 정보를 합친 것.
- ex) CV_8UC1 -> unsigned char 자료형을 사용하고 채널이 한 개인 행렬 or 영상
'Computer Vision' 카테고리의 다른 글
OpenCV 주요 클래스 - 3. Vec와 Scalar 클래스 (0) | 2020.02.13 |
---|---|
OpenCV 주요 클래스 - 2. Mat 클래스(4) (0) | 2020.02.13 |
OpenCV 주요 클래스 - 2. Mat 클래스(3) (0) | 2020.02.12 |
OpenCV 주요 클래스 - 2. Mat 클래스(2) (0) | 2020.02.09 |
OpenCV 주요 클래스 - 1. 기본 자료형 클래스 (0) | 2020.02.08 |
댓글