Programming/OpenCV
-
마우스 이벤트Programming/OpenCV 2015. 4. 19. 17:38
마우스 이벤트CvMouseCallback void CvMouseCallback( int event, int x, int y, int flags, void* param ); evnet: 마우스 이벤트x, y: 마우스 이벤트가 발생한 x, y 좌표(윈도우 크기와 무관, 영상에서의 픽셀 좌표)flags: 각 비트에 마우스 이벤트가 발생했을 때 키보드 또는 마우스 상태param: 특정 구조체의 포인터를 추가 전달 마우스 이벤트 종류 event 값 할당된 정수값 CV_EVENT_MOUSEMOVE 0 CV_EVENT_LBUTTONDOWN 1 CV_EVENT_RBUTTONDOWN 2 CV_EVENT_MBUTTONDOWN 3 CV_EVENT_LBUTTONUP 4 CV_EVENT_RBUTTONUP 5 CV_EVENT_M..
-
그리기 함수 - 다각형Programming/OpenCV 2015. 4. 19. 17:05
그리기 함수 다각형 cvFillPoly void cvFillPoly( CvArr* img, CvPoint** pts, int* npts, int contours, CvScalar color, int line_type = 8 ); 다각형(polygon)으로 된 윤곽의 내부를 채우는 함수이다.img: 처리하고자 하는 원본 이미지pts: 다각형을 가리키는 포인터의 배열npts: 다각형의 꼭지점의 갯수contours: 채워진 지역을 감싸는 윤곽의 개수color: 다각형 색깔line_type: 다각형의 윤곽을 구성하는 선의 종류8: 8-connected line4: 4-connected lineCV_AA: Anti-Aliasing 된 선 cvFillConvexPolyvoid cvFillConvexPoly( CvA..
-
그리기 함수 - 직선, 사각형, 원, 타원Programming/OpenCV 2015. 4. 19. 16:37
그리기 함수 직선, 사각형, 원, 타원 직선과 사각형cvLine void cvLine( CvArr* array, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness = 1, int connectivity = 8 ); 이미지에 선을 그린다.array: 선을 그릴 원본 이미지pt1: 선의 양 끝 점 중 한쪽 점pt2: 선의 양 끝 점 중 나머지 한쪽 점color: 선의 색깔thickness: 선의 두께connectivity: 선 종류8: 8-Connected Line4: 4-Connected LineCV_AA: Anti-Alliasing Line cvRectangle void cvRectangle( CvArr* array, CvPoint pt1, CvPoint..
-
cvSplit, cvMerge, cvFlipProgramming/OpenCV 2015. 4. 14. 22:17
cvSplit, cvMerge, cvFlip OpenCV cvSplit()void cvSplit( const CvArr* src, CvArr* dst0, CvArr* dst1, CvArr* dst2, CvArr* dst3 ); 다채널(Multi-Channel) 배열을 여러 개의 단채널(Single-Channel) 배열로 반환한다. src: 원본 영상 dst0, dst1, dst2, dst3: 결과 영상 src 영상의 각 채널을 분할해 단일 채널 영상인 dst0, dst1, dst2, dst3에 저장. 출력 영상은 입력 영상과 동일한 크기와 데이터 타입을 가진다.원본 영상이 4보다 작은 개수의 채널을 가질 경우 사용되지 않는 출력 영상에는 NULL을 저장 cvMerge void cvMerge( const ..
-
IplImage 구조체Programming/OpenCV 2015. 4. 12. 00:35
IplImage 구조체 OpenCV IplImage 구조체는 본질적으로 CvMat와 동일하지만, 영상을 표현하기에 적합한 추가 항목들을 가지고 있다. IplImage 구조체 정의 typedef struct _IplImage { int nSize; int ID; int nChannels; int alphaChannel; int depth; char colorMode[4]; char channelSeq[4]; int dataOrder; int origin; int align; int width; int height; struct _IplROI* roi; struct _IplImage* maskROI; void* imageId; struct _IplTileInfo* tileInfo; int imageSize;..
-
CvMat 행렬 구조체Programming/OpenCV 2015. 3. 27. 21:36
CvMat 행렬 구조체 OpenCV 행렬에 대해 알아보기 전에 두 가지 사항을 기억해야 한다.OpenCV에는 "벡터"를 표현하는 데이터 타입이 없다.벡터를 사용하고 싶다면, 한 열(전치 벡터의 경우 한 행)짜리 행렬을 사용하면 된다.OpenCV에서 사용하는 행렬은 조금은 추상적인 개념이다.행렬의 원소는 단순히 숫자만 해당 x 2차원 행렬을 만드는 함수의 원형 CvMat* cvCreateMat ( int rows, int cols, int type ); 세 번째 인자 type에는 CV_(S|U|F)C 형태의 다양한 데이터 타입 지정이 가능하다. 32비트 실수형 1채널(CV_32FC1), 부호 없는 8비트 정수형 3채널(CV_8UC3) 등 여러 데이터 타입으로 구성될 수 있다. S : signed integ..
-
기본 데이터 타입Programming/OpenCV 2015. 3. 27. 20:45
기본 데이터 타입 OpenCV OpenCV는 자체적인 기본 데이터 타입을 가진다. C언어에서 제공하는 기본 데이터 타입이 아니라 OpenCV에서 새로 정의한 구조체 형식의 데이터 타입을 의미한다. 좌표, 크기, 사각형, 4차원 스칼라 벡터에 대한 구조체 정의 구조체 멤버 생성자 함수 용도 CvPoint int x, y cvPoint() 영상 내 한 점의 위치 CvPoint2D32f float x, y cvPoint2D32f() 2차원 실수 공간에서의 좌표 CvPoint3D32f float x, y, z cvPoint3D32f() 3차원 실수 공간에서의 좌표 CvSize int width, height cvSize() 영상의 크기 CvRect int x, y, width, height cvRect() 영상..
-
동영상 재생Programming/OpenCV 2015. 3. 27. 19:42
동영상 재생 OpenCV #include "highgui.h" int main(int argc, char** argv) { cvNamedWindow( "Example", CV_WINDOW_AUTOSIZE ); CvCapture* capture = cvCreateFileCapture( argv[1] ); IplImage* frame; char c; while(1) { frame = cvQueryFrame( capture ); if( !frame ) break; cvShowImage( "Example", frame); c = cvWaitKey(33); if( c == 27 ) break; } cvReleaseCapture( &capture ); cvDestroyWindow( "Example" ); retur..