2012-05-23 4 views
1

다음 코드를 사용하여 카메라 매개 변수를 설정하려고하는데 전혀 작동하지 않습니다.Opencv2.4 카메라 매개 변수 설정

using namespace cv; 

    int main(int argc,char *argv[]) 
    { 
     VideoCapture cap(0); // open the default camera 
     if(!cap.isOpened()) // check if we succeeded 
      return -1; 
     bool value = cap.set(CV_CAP_PROP_FRAME_WIDTH,10); 
     for(;;) 
     { 
      Mat frame; 
      cap >> frame; // get a new frame from camera 
      imshow("frame", frame); 
      unsigned char *dad = (unsigned char*)frame.data; 
      if(waitKey(30) >= 0) break; 
     } 
     // the camera will be deinitialized automatically in VideoCapture destructor 
     return 0; 
    } 
+0

"전혀 작동하지 않는다"는 것을 설명하십시오. 그것은 컴파일합니까? 오류가 발생합니까? 카메라와 드라이버가 프레임 너비 매개 변수 변경을 지원하지 않는다고 상상해보십시오. 예를 들어 Linux에서는 V4L을 사용하는 카메라의 매개 변수를 변경할 수 없습니다. –

+0

또한, 이미지를 표시하고 싶다면 끝없는 for 루프 앞의'cvNamedWindow ("frame", CV_WINDOW_AUTOSIZE);를 추가해야합니다. –

+0

카메라 매개 변수를 변경할 수 없다는 뜻입니다. – Andre

답변

-1

위의 코드는 카메라 매개 변수를 변경하는 데 사용하지 않습니다. 나는 당신의 컴퓨터에 비디오를 보여주기에 충분하다고 생각합니다. 이 링크가 유용 할 수도 있습니다 http://opencv.willowgarage.com/wiki/CameraCapture

+0

틀린,이 라인 'bool 값 = cap.set (CV_CAP_PROP_FRAME_WIDTH, 10); ' 프레임 너비 매개 변수를 변경해야합니다. –

2

OpenCV는이 크기를 카메라에서 직접 설정하려고하므로 프레임의 크기를 조정할 필요가 없습니다.

카메라가이 크기를 기본으로 지원하지 않으면 OpenCV는 값을 설정하지 못하고 프레임을 검색 한 후에 크기를 조정할 수 있습니다.

cap.set() 함수의 성공을 반환하는 것으로 보이므로 확인해 보시기 바랍니다.

다른 스레드를 살펴 보는 것이 좋습니다 : how to change the capture resolution in OpenCV.

0

opencv에서 비디오 캡처를위한 directshow를 사용하고 있습니다. 그러나 카메라는 480 * 320, 640 * 480, 720p, 1080p와 같은 몇 가지 해상도 설정 만 지원합니다. 다른 것을 설정하면 전혀 작동하지 않습니다. 카메라가 지원하는 해상도의 종류를 확인하려는 경우 graphedt를 다운로드하고 캡처 핀 속성을 확인하십시오.