1. Vec 클래스
Vec 클래스는 다양한 OpenCV 프로그래밍에서 유용하게 사용되고 있으며, 특히 Vec3b, Vec4i, Vec2f 등 이름으로 재정의되어 사용되고 있다.
Vec 클래스는 Matx 클래스를 상속받아 만들어지며 열 개수가 1개로 특화된 벡터 표현 클래스이다.
Vec 클래스는 템플릿을 사용하기 때문에 자료형과 데이터 개수를 명시해야 한다.
Vec<uchar, 3> p1, p2(0, 0, 255);
위와 같은 방식으로 입력하는 것에 번거로움이 있어 OpenCV에서 이름 재정의를 제공한다.
typedef Vec<uchar, 3> Vec3b;
Vec3b p1, p2(0, 0, 255);
다음과 같이 변수를 선언할 경우 p1과 p2는 각각 내부에 uchar val[3]; 형식의 멤버 변수를 가진다.
만약 p1 변수의 첫 번째 원소를 100으로 변경하고 싶다면 다음과 같이 표현할 수 있다.
p1.val[0] = 100;
그런데 Vec 클래스는 [] 연산자 재정의가 되어 있기 때문에 다음과 같이 쉽게 접근 가능하다.
p1[0] = 100;
2. Scalar 클래스
OpenCV 프로그래밍에서 Mat 클래스 다음으로 자주 사용되는 클래스이다.
Scalar 클래스는 4 채널 이하의 영상에서 픽셀 값을 표현하는 용도로 자주 사용된다.
Scalar 클래스는 Scalar_ 템플릿 클래스의 double형 이름 재정의 이며 Scalar_ 클래스는 Vec 클래스를 상속한다.
typedef Scalar_<double> Scalar;
Scalar 클래스 객체 생성 방법
Scalar(밝기)
Scalar(파란색, 녹색, 빨간색)
Scalar(파란색, 녹색, 빨간색, 투명도)
3. InputArray 클래스
4. OutputArray 클래스
영상 입력 -> 영상 처리 수행 -> 반환
반환 시 return 구문으로 반환하는 것이 아니라 보통 OutputArray 클래스의 참조를 함수 인자로 사용하여
결과 영상을 전달
함수 (InputArray, OutputArray)
'OpenCV' 카테고리의 다른 글
다양한 그리기 함수 (0) | 2020.03.23 |
---|---|
카메라와 동영상 파일 다루기 (0) | 2020.03.23 |
기본 자료형 클래스(3) (0) | 2020.03.20 |
기본 자료형 클래스(2) (0) | 2020.03.10 |
기본 자료형 클래스(1) (0) | 2020.03.10 |