2016-12-07 3 views
1

Windows 10 64 비트에서 OpenCV 3.1.0을 사용하고 있습니다. 웹캠이 작동하는 동안 웹캠의 해상도를 설정할 수 있기를 바랍니다. 카메라 작업 후 해상도를 쉽게 설정할 수 있습니다. 그러나 웹캠 캡처 중 해상도를 설정할 수 없습니다.OpenCV : 캡처하는 동안 VideoCapture의 해상도 변경

cv::VideoCapture cap(0); 
cap.set(cv::CAP_PROP_FRAME_WIDTH, 0x7FFFFFFF);   // working 
cap.set(cv::CAP_PROP_FRAME_HEIGHT, 0x7FFFFFFF);   // working 

while (true) { 
    cv::Mat frame; 
    cap >> frame; 
    if (!frame.data) continue; 
    cv::imshow("test", frame); 
    if (cv::waitKey(1) >= 0) break; 

    int newHeight = 500 + rand() % 4 * 100; 
    cap.set(cv::CAP_PROP_FRAME_HEIGHT, newHeight);  // not working 
} 

int newHeight = 500 + rand() % 4 * 100; 
cap.set(cv::CAP_PROP_FRAME_HEIGHT, newHeight);   // not working 

답변

1

난 단지 임의의 높이를 설정하고, 웹캠은 미리 설정된 해상도 만 지원합니다. 그래서 가장 잘 맞는 프리셋 해상도를 선택하여 보여줍니다.

1

내 추측은 당신이 웹캠을 지원하지 않습니다 시도하는 CAP_PROP_FRAME_HEIGHT의 값입니다 :

여기 내 코드입니다. 카메라를 리눅스 박스에 연결하는 경우 v4l2-ctl -d 0 --list-formats-ext을 사용하여 지원되는 비디오 형식을 나열 할 수 있습니다. 여기에 마이크로 소프트의 LifeCam 시네마에 대한 출력의 일부 :

Index  : 1 
    Type  : Video Capture 
    Pixel Format: 'MJPG' (compressed) 
    Name  : Motion-JPEG 
      Size: Discrete 640x480 
        Interval: Discrete 0.033s (30.000 fps) 
        Interval: Discrete 0.050s (20.000 fps) 
        Interval: Discrete 0.067s (15.000 fps) 
        Interval: Discrete 0.100s (10.000 fps) 
        Interval: Discrete 0.133s (7.500 fps) 
      Size: Discrete 1280x720 
        Interval: Discrete 0.033s (30.000 fps) 
        Interval: Discrete 0.050s (20.000 fps) 
        Interval: Discrete 0.067s (15.000 fps) 
        Interval: Discrete 0.100s (10.000 fps) 
        Interval: Discrete 0.133s (7.500 fps) 
      ... 

나는 카메라에서 정보를 조회 할 수 UVC를 사용 v4l2-ctl 비슷한는,이 Windows에서인지 최근에 확인하지 않았습니다. UVC는 일반적으로 최근 웹캠에서 지원됩니다.

+0

나는 내 웹캠이이를 지원한다는 사실에 몹시 못 미친다. 그리고 나는 당신의 코멘트에서 팁을 얻었고 문제를 찾는다. 더 이상 고마워. –