본문 바로가기

CLASS

[OpenCV] OpenCV 카메라 화면 크기 제어하기 강좌 (소스포함)

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 );
  cvResize( image, view_image, CV_INTER_LINEAR );
T9-ScreenSize.zipT9-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);


T9-ScreenSize.zip

T9-ScreenSize(2).zip







  • 노형석 2007.12.03 17:12

    궁금한것이 있는데요..

    제가 가지고 있는 CCD cam이 해상도가 640x480인데

    이것을 320x240으로 영상을 보여줘도..

    image가 들어있는 메모리엔 640x480데이터가 들어있던데..

    cvResize()를 이용하지 않고

    cam에서 받는 것 자체를 320x240으로 받는게 가능한가요?

    그냥 예전에 프로그래밍하다가 보여지는 영상자체만 320x240으로 바꿨다가 프로그래밍하는데 문제가 생긴게 떠올라서 여쭤봅니다^^;;

    글 재밌게 읽고 갑니다~~