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

+ Recent posts