2010-06-25 4 views
2

나는 주변을 검색해 왔으며 카메라 캡처 설정을 가져오고 설정하는 방법의 예제를 찾을 수 없습니다. 예를 들어, 캡쳐 해상도, fps, 컬러 밸런스 등. 캡처 된 비디오를 저장할 때 설정을 변경하는 방법에 대한 예제 만 보았지만 모든 카메라 캡처 모드를 찾고 원하는 것을 선택할 수 있기를 원합니다. 예를 들어 PS3eye 웹캠을 사용 중이며 테스트 프로그램에서 설정을 변경할 수 있습니다 (320x240, 15,30,60,120 fps, 640x480, 15,30,60,75 fps). 그렇다면 OpenCV에서 모든 카메라 캡처 모드를 선택하고 하나를 선택하는 기능이 있습니까? OpenFrameworks에는 이러한 설정을 변경하는 기능이 있었지만 OpenCV에서이 기능을 수행하는 방법을 알고 싶습니다. 이 플래그카메라 설정 가져 오기 및 설정

vidGrabber.setDeviceID(4); 
vidGrabber.setDesiredFrameRate(30); //I want this 
vidGrabber.videoSettings(); 
vidGrabber.setVerbose(true); 
vidGrabber.initGrabber(320,240); //And this 

답변

1
cvSetCaptureProperty() 

: 여기

은 내가 원하는 종류의 작업을 수행 OpenCV의와 오픈 프레임 웍스의 코드입니다

CV_CAP_PROP_FRAME_WIDTH - width of frames in the video stream (only for cameras) 
CV_CAP_PROP_FRAME_HEIGHT - height of frames in the video stream (only for cameras) 
CV_CAP_PROP_FPS   - frame rate (only for cameras) 
+0

해상도 작품을 변경하지만 난 찾을 수 없습니다 fps가 변하는 증거. 이게 맞습니까? CvCapture * 캡처; capture = cvCreateCameraCapture (5); cvSetCaptureProperty (캡처, CV_CAP_PROP_FPS, 15); – jhaip

+0

네, 괜찮을 겁니다. 카메라가 15FPS를 지원합니까? 그렇다면 FPS가 변경되지 않았 음을 어떻게 확인합니까? FPS가 변경되었는지 확인할 수있는 cvGetCaptureProperty() 함수도 있습니다. – Adi

+0

프레임을 쿼리하는 데 필요한 계산 시간을 측정하여 변경 사항이 있는지 확인했지만 변경되지 않았습니다. 나는 fps를 증가시킴으로써 cvQueryFrame()에 대한 지연 시간이 줄어들도록 수정 했는가? 또한 다른 속도로 설정하면 시각적으로 차이가 없으며 카메라와 함께 제공되는 테스트 앱에 이러한 설정이 포함되어 있기 때문에 카메라를 실행할 수 있다고 확신합니다. 나 또한 다른 장소에서 cvGetCapturePropety()를 시도하고 30으로 설정 한 직후에도 항상 0을 얻습니다. fps를 인쇄하는 것이 맞습니까? printf ("% d \ n", (int) cvGetCaptureProperty (캡처, CV_CAP_PROP_FPS)); – jhaip

관련 문제