1. Vec 클래스
벡터는 같은 자료형을 가진 원소 몇개로 구성된 데이터 형식
//Matx 클래스 - 작은 크기의 행렬을 표현하기 위해 만들어진 템플릿 클래스
Vec클래스 : Matx 클래스를 상속받아 만들어지며, 열 개수가 1개로 특화된 벡터 표현 클래스
템플릿을 사용하기 때문에 실제 코드에선 <>괄호 사이에 데이터 자료형과 데이터 갯수 명시해야함
Vec<num-of-data>{b|s|s|i|f|d} // num-of-data 부분에 2,3,4등 작은 숫자 지정가능, b는 uchar , s는 short,
w는 ushort, i는 int, f는 float, d는 double 자료형 의미
Vec 클래스는 아래와 같이 []연산자가 재정의 되어있다.
template<typename _TP, int cn> inline
_TP& Vec<_TP,cn>::operator [](int i)
{
CV_DbgAssert( (unsigned) i < (unsigned) cn ); //CV_DbgAssert() 매크로 함수- 디버그모드에서만 동작하는 예외
return this->val[i]; 처리 코드, 릴리스 모드에선 무시
}
2. Scalar 클래스
4채널 이하의 영상에서 픽셀 값을 표현하는 용도, Vec 클래스를 상속받아 만들어졌다.
Vec 클래스처럼 std::cout와 <<연산자를 이용하여 원소값을 간단하게 출력할 수 있다.
자주 사용되는 객체 생성 방법
Scalar(밝기) // 나머지 0
Scalar(파란색,녹색, 빨간색) // 나머지 0
Scalar(파란색, 녹색, 빨간색, 투명도)
원소 값을 참조할때 Scalar 클래스 또한 Vec 클래스처럼 []연산자 재정의를 사용한다.
'컴퓨터 비전 study' 카테고리의 다른 글
InPutArray와 OutputArray (0) | 2020.02.26 |
---|---|
OpenCv Mat 클래스(3) (0) | 2020.02.26 |
Open CV Mat 클래스(2) (0) | 2020.02.19 |
OpenCV Mat 클래스(1) (0) | 2020.02.14 |
OpenCV 기본 자료형 클래스 (0) | 2020.02.14 |