본문 바로가기

전체 글38

[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.
django app 만들기 django에서 app을 만들어 서버페이지에 표시하기 django프로젝트를 만든 후 그 프로젝트로 경로를 이동한 뒤 python manage.py startapp "앱디렉토리명"을 입력한다. 이러면 앱디렉토리가 생성된다. URL 경로 지정하기 에디터를 이용해 원래의 프로젝트디렉토리로 들어간다. 프로젝트 디렉토리의 urls.py에 있는 소스코드를 수정한다. include함수를 추가해주고 path('', include("blog.urls"))를 추가한다. path('', include("blog.urls"))는 아무것도 입력되지 않았을 때 blog디렉토리의 urls를 실행한다는 의미다. 다음으로는 앱디렉토리로 들어가서 urls.py를 추가한다. urls.py의 코드를 다음과 같이 작성한다. views파일을 .. 2019. 3. 21.
django 설치 python3.x 버전 이상이 설치되어 있는 상태에서의 django 설치(OS : windows10) cmd에서 pip install django 명령어를 입력한다. 원하는 위치에 폴더를 만들고 그 폴더로 경로를 바꾼 뒤 django-admin startproject "디렉토리명" 을 입력한다. 생성된 디렉토리로 경로를 옮기고 python manage.py runserver 명령어를 통해 서버가 실행되는지 확인한다. django의 포트번호는 기본적으로 8000이라고 한다. 127.0.0.1:8000 이나 localhost:8000을 접속해본다. 2019. 3. 21.
두개의 회전사각형을 포함하는 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.