본문 바로가기

OpenCV6

[OpenCV]vector 클래스 vector클래스는 일단 opencv의 내장 클래스가 아니다. 하지만 opencv에서 메소드의 반환자료형이나 인수의 자료형으로 다양하게 활용되기 때문에 사용한다. vector클래스의 객체 선언시에는 vector을 사용한다. point, size형으로도 선언이 가능하다. 내부메소드로는 insert() - 매개변수를 통해 지정하는 위치에 원소를 삽입한다. erase() - 매개변수를 통해 지정하는 위치의 원소를 삭제한다. capacity() - 벡터에 할당된 공간의 크기 반환 size() - 벡터내 원소의 개수를 반환한다. begin() - 벡터의 첫 번째 원소를 가리키는 반복자 반환 end() - 벡터의 마지막 원소를 가리키는 반복자 반환 push_back() - 벡터의 마지막에 원소 추가 pop_back.. 2019. 4. 11.
[OpenCV]Mat_ 클래스와 Matx 클래스 Mat_ 클래스는 Mat 클래스에서 상속된 템플릿 클래스이다. 행렬 원소 접근 연산을 많이 하거나 컴파일 타임에 행렬의 자료형을 알고 있는 경우에 Mat_ 클래스를 사용한다. Mat_ 객체를 선언할 때에 2019. 4. 10.
[OpenCV]Mat 클래스 n-차원의 밀집형 배열 클래스로 다양한 데이터를 저장할 수 있다. 단일 채널 혹은 다중 채널의 값 실수나 복소수로 구성된 벡터 명암도(gray-scale) 영상이나 컬러 영상 데이터 점의 집합 히스토그램 데이터 생성자를 통해 생성할 수 있고 매개변수로 (rows, cols, type, 초기값)을 생성할 수 있다. Mat 객체를 생성할 때에는 행렬의 자료형과 데이터 원소의 자료형이 맞지 않으면 여러 가지 문제들이 발생할 수 있는데 예를들어 uchar행렬은 0~255까지의 범위를 갖기때문에 255가 초과하는 값을 넣어도 255의 값이 저장된다. Mat클래스는 행렬의 값을 초기화할 때, 자료형이 일치하지 않으면, 에러가 발생하기 때문에 자료형에 주의해야 한다. 행렬 자료형의 종류 CV_8U - uchar(un.. 2019. 4. 10.
[OpenCV]RotatedRect 클래스 이름그대로 회전된 사각형을 나타내기 위한 클래스이다. 매개변수로는 중심점, 크기 회전각도를 가진다 (point(x, y), size(w, h), angle)로 사용하면 될 듯 하다 회전각도는 3시 방향이 0도이며 양수가 시계방향, 음수가 반시계방향이다. 클래스의 메소드로는 line(), circle(), rectangle(), imshow() 등이 있다. #include using namespace cv; using namespace std; int main() { for (int deg = 3600; deg > 0; deg += 1) { Mat image(700, 700, CV_8UC1, Scalar(255)); Point2f center(250, 200), pts[4]; Size2f size(300,.. 2019. 4. 10.
OpenCV의 기본 자료 구조 OpenCV에서는 사각형, 좌표, 크기, 색상 등을 나타내는 다양한 자료구조들을 템플릿클래스로 제공한다. Point_, Size_, Rect_, Vec, Scalar_클래스를 다룬다. Point_클래스 가로와 세로의 위치를 2차원 좌표로 나타내기 위한 템플릿 클래스이다. int, float, double 다양한 데이터 타입을 사용할 수 있고 생성자의 매개변수로 x와 y의 좌표값을 넣을 수 있다. Point_ pi; Point_ pf; Point_ pd; 위와같이 데이터타입을 같이 선언하는데 더 간결하게도 표현할 수 있다. Point2i pi; Point2f pf; Point2d pd; 위와같이 표현할 수 있다. Point_클래스에서는 3차원 자료도 나타낼수 있다. #include #include usin.. 2019. 4. 10.
두개의 회전사각형을 포함하는 bounding 사각형 opencv 공부 중 회전하는 사각형 2개를 포함하는 bounding 사각형을 만들어야 되는데 or연산자로 간단하게 해결했다. #include #include using namespace cv;using namespace std; int main() {for (int deg = 360; deg > 0; deg += -10) {Mat image(1000, 1000, CV_8UC1, Scalar(255));Point2f center(250, 200), pts[4];Point2f center2(500, 350), pts2[4];Size2f size(200, 100);Size2f size2(150, 150);RotatedRect rot_rect(center, size, deg); // constant is an.. 2019. 3. 15.