OpenCV 로 입력받은 PC 카메라의 크기를 제어하는 방법입니다. 숫자키 1, 2, 3, 4, 5 를 번갈아 눌러보시면 화면이 조절 되는 것을 보실 수 있습니다. 소스 (2) (T9-ScreenSize(2).zip) 에서는 + 키를 누르면 윈도우 크기를 크게, - 키는 작게 하는 기능도 추가되어 윈도우 크기를 자유롭게 조절 가능합니다.
VIEW_WIDTH 와 VIEW_HEIGHT 숫자를 변경하면 화면 크기가 변경됩니다.
cvNamedWindow( WIN_NAME1, 0 );
cvResizeWindow( WIN_NAME1, VIEW_WIDTH, VIEW_HEIGHT );
윈도우 크기를 변경하였으니 뿌려주는 이미지 크기도 아래와 같이 변경해야 겠지요.
// View 크기만큼 확장
if(!view_image)
view_image = cvCreateImage( cvSize(VIEW_WIDTH, VIEW_HEIGHT), image->depth, image->nChannels );
if(!view_image)
view_image = cvCreateImage( cvSize(VIEW_WIDTH, VIEW_HEIGHT), image->depth, image->nChannels );
cvResize( image, view_image, CV_INTER_LINEAR );
T9-ScreenSize.zip 과 T9-ScreenSize(2).zip 에는 차이가 있습니다.
하나는 초기에 image 를 만들어 두고 윈도우 크기만 변경해서 그 윈도우 크기에 맞게 늘이고 줄인 것 이라면, (초기에 만든 image 크기보다 윈도우 크기가 커지면 계단현상(깨짐현상)이 발생합니다.)
(2) 번 소스는 각각 크기에 맞게 CreateImage 를 하여 cvResize 를 해서 계단현상 없이 부드러운 화면을 볼 수 있습니다. 초기에 image 는 PC 카메라의 성능에 좌우되는데 입력 받을때 카메라의 셋팅을 바꾸려면 아래처럼 width, hegith 값을 조절하면 되지만 아직 지원 하지 않는다고 합니다. 버전업 되면서 지원될테니 코딩할때 챙겨서 넣어두고 있습니다.
// 카메라 입력 셋팅
cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH, width);
cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT, height);
cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH, width);
cvSetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT, height);
'CLASS' 카테고리의 다른 글
[OpenCV] OpenCV 를 이용한 템플릿 매칭(Template Matching) 하기 (소스포함) (9) | 2006.09.07 |
---|---|
[OpenCV] 키보드로 OpenCV 를 제어하는 인터페이스 강좌 (소스포함) (0) | 2006.07.26 |
[OpenCV] OpenCV 를 이용한 Hough Transform 중급강좌 (3) | 2006.01.10 |
[OpenCV] 윤곽(contour) 추출, 에지(edge) 추출 중급강좌 (0) | 2006.01.03 |
[OpenCV] OpenCV 를 이용한 영상 이진화(Binarization) 초급강좌 (8) | 2005.11.11 |