C++ OpenCV:相机选择-奇怪行为(2个相机)
我的系统里几乎没有摄像头。我用这种方式初始化它们C++ OpenCV:相机选择-奇怪行为(2个相机),c++,opencv,video-capture,C++,Opencv,Video Capture,我的系统里几乎没有摄像头。我用这种方式初始化它们 cap1 = cvCreateCameraCapture(0); cap2 = cvCreateCameraCapture(1); // or -1 但每次执行后,它们的行为都不同:它们一起工作,或者两者都工作,或者不工作,或者其中一个捕捉良好,而另一个显示绿色屏幕。有时系统会显示选择设备的对话框 以下是这部分源代码: CvCapture* cap2; CvCapture* cap1; printf("- Search
cap1 = cvCreateCameraCapture(0);
cap2 = cvCreateCameraCapture(1); // or -1
但每次执行后,它们的行为都不同:它们一起工作,或者两者都工作,或者不工作,或者其中一个捕捉良好,而另一个显示绿色屏幕。有时系统会显示选择设备的对话框
以下是这部分源代码:
CvCapture* cap2;
CvCapture* cap1;
printf("- Searching first cam : \n");
for (i; i < LASTCAM; i++)
{
cap1 = cvCreateCameraCapture(i);
if (!cap1)
{
printf("-- Camera %d is empty \n", i);
}
else
{
printf("-- Camera %d is OK \n", i);
i++;
break;
}
}
printf("- Searching second cam : \n");
for (; i < LASTCAM; i++)
{
cap2 = cvCreateCameraCapture(i);
if (!cap2)
{
printf("-- Camera %d is empty \n", i);
}
else
{
printf("-- Camera %d is OK \n", i);
break;
}
} printf("Frame propeties:\n");
double width = cvGetCaptureProperty(cap1, CV_CAP_PROP_FRAME_WIDTH);
double height = cvGetCaptureProperty(cap1, CV_CAP_PROP_FRAME_HEIGHT);
printf("First cam : %.0f x %.0f\n", width, height );
double width2 = cvGetCaptureProperty(cap2, CV_CAP_PROP_FRAME_WIDTH);
double height2 = cvGetCaptureProperty(cap2, CV_CAP_PROP_FRAME_HEIGHT);
printf("Second cam : %.0f x %.0f\n\n", width2, height2 );
IplImage* frame1=0;
IplImage* frame2=0;
cvNamedWindow("cam1", CV_WINDOW_AUTOSIZE);
cvNamedWindow("cam2", CV_WINDOW_AUTOSIZE);
int counter=0;
char filename[512];
while(true){
frame1 = cvQueryFrame( cap1 );
frame2 = cvQueryFrame( cap2 );
cvShowImage("cam1", frame1);
cvShowImage("cam2", frame2);
...
CvCapture*cap2;
CvCapture*cap1;
printf(“-搜索第一个cam:\n”);
对于(i;i
怎么了
1-9个凸轮为空;10个-第一个凸轮,11个无限-返回为“绿色屏幕”的凸轮
事先谢谢。您看过了吗?如果您想运行多个摄像头,它似乎是必需的。USB摄像头(至少通过windows上的directshow)可能有点困难
有些事情可以尝试:
// A small delay between the captures
cap1 = cvCreateCameraCapture(0);
Sleep(100);
cap2 = cvCreateCameraCapture(1);
或
恐怕现在不支持此常见问题解答中使用的API。(所有这些
cvcam…
函数)。
// call all the setup functiosn for camera0 before capturing camera1
cap1 = cvCreateCameraCapture(0);
cvGetCaptureProperty(cap1,......)
cap2 = cvCreateCameraCapture(1);
cvGetCaptureProperty(cap2,......)