尝试使用以下代码设置相机参数,但根本无法正常工作。
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 :(得分:2)
OpenCV尝试直接在相机中设置此大小,因此无需调整帧大小。
这种方法的问题在于,如果您的相机本身不支持此尺寸,OpenCV将无法设置该值,让您在检索帧后重新调整帧的大小。
cap.set()
似乎返回了该功能的成功,我建议你检查一下。
我建议看看另一个帖子:how to change the capture resolution in OpenCV。
答案 1 :(得分:0)
正在使用directshow进行视频捕获。但是,您的相机仅支持一些分辨率设置,如480 * 320,640 * 480,720p,1080p。如果你设置别的东西,它根本不起作用。 如果你想检查你的相机支持什么样的分辨率。 下载graphedt并检查捕获引脚属性。
答案 2 :(得分:-1)
以上代码不用于更改摄像机参数。我认为在你的机器上显示视频是完整的。可能此链接对您有用http://opencv.willowgarage.com/wiki/CameraCapture