코코야이야기
[c++] OpenCV 카메라영상 본문
소스코드
//카메라로부터 비디오 영상 입력 Canny 및 에지 검출
#include "cv.h"
#include "highgui.h"
int main()
{
CvCapture* capture = cvCaptureFromCAM(0); //cvCaptureFromCAM(index) , 카메라 번호 index로부터 비디오획득을 초기화하여 CvCapture* 포인터를 반환
if(!capture)
{
printf("You need to connect a camera to your computer.");
return 0;
}
int width = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);
//cvGetCaptureProperty(capture, property_id) , capture에 연결된 비디오 또는 카메라로부터 property_id에 아래와 같은 상수를 주면 이에 따른 속성을 반환
//CV_CAP_PROP_FRAME_WIDTH : 비디오 프레임의 가로크기
//CV_CAP_PROP_FRAME_HEIGHT : 비디오 프레임의 세로크기 ...
int height = (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT);
IplImage* frame;
IplImage *grayImage = cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
IplImage *edgeImage = cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
cvNamedWindow("grayImage",CV_WINDOW_AUTOSIZE);
cvNamedWindow("edgeImage",CV_WINDOW_AUTOSIZE);
while(1)
{
frame = cvQueryFrame(capture); //cvQueryFrame(capture) - capture로 부터 영상프레임을 잡고 영상포인터를 반환.
if(!frame)
break;
cvCvtColor(frame,grayImage,CV_BGR2GRAY);
cvCanny(grayImage,edgeImage,50,100,3);
cvShowImage("grayImage",grayImage);
cvShowImage("edgeImage",edgeImage);
char chKey = cvWaitKey(10);
if(chKey==27) //esc 키 누르면 종료
break;
}
cvReleaseCapture( &capture );
cvReleaseImage(&grayImage);
cvReleaseImage(&edgeImage);
cvDestroyAllWindows();
return 0;
}
출력영상
'프로그래밍 > OpenCV' 카테고리의 다른 글
[c++] OpenCV 동영상재생 트랙바 (0) | 2015.09.28 |
---|---|
[c++] OpenCV 템플릿매칭2 (0) | 2015.09.27 |
[c++] OpenCV 템플릿매칭1 (0) | 2015.09.25 |
[c++] OpenCV 특징점검출 (0) | 2015.09.24 |
[c++] OpenCV 원검출 (0) | 2015.09.24 |