メソッドを呼び出すとcvSetCaptureProperty(capture, CV_CAP_PROP_EXPOSURE, 2);
、カメラの露出が適切に設定されます。ただし、Dell Webcam Central ソフトウェア、Skype、またはカメラを使用するその他のものを実行すると、OpenCV プログラム コードで設定した最後の露出で露出が停止し、以前のように自動的に調整されません。前に行われました。
ウェブカメラ プログラム (Dell Webcam Central および Skype) で再び露出を自動的に調整するにはどうすればよいですか?
コードは次のとおりです。
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY ); //CV_CAP_ANY
if ( !capture )
{
fprintf( stderr, "ERROR: capture is NULL \n" );
getchar();
return -1;
}
cvNamedWindow( "mywindow", CV_WINDOW_AUTOSIZE );
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 640);
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 480);
int width = (int)(cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH));
int height = (int)(cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT));
IplImage* image = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
IplImage* frame;
char c;
while ( true )
{
frame = cvQueryFrame( capture );
if ( !frame )
{
fprintf( stderr, "ERROR: frame is null...\n" );
getchar();
break;
}
cvShowImage( "mywindow", frame );
cvSetCaptureProperty(capture, CV_CAP_PROP_EXPOSURE, 2);
c = cvWaitKey(33);
if( (c & 255) == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "mywindow" );
return 0;
}