gpt4 book ai didi

c - 无法在 OpenCV 中检测网络摄像头

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:22 24 4
gpt4 key购买 nike

您好,我正在尝试使用以下代码检测 opencv 中的网络摄像头,尽管我的网络摄像头通过 USB 连接到我的 PC,但我得到的是黑屏

我的网络摄像头正在使用 **ICatch(VI) PC 摄像头 ** 驱动程序,我正在使用 OpenCV 2.1 和 VS 2008

#include "cv.h"
#include "highgui.h"

int main( int argc, char** argv ) {
cvNamedWindow( "cam", CV_WINDOW_AUTOSIZE );
CvCapture* capture;
if (argc==1) {
capture = cvCreateCameraCapture( 0 );
} else {
capture = cvCreateFileCapture( argv[1] );
}
assert( capture != NULL );

IplImage* frame;
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "cam", frame );
char c = cvWaitKey(10);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "cam" );
}

最佳答案

好的,首先...您的网络摄像头是否与其他网络摄像头应用程序兼容?

你的代码有点乱!您创建了一个名为 Example2_9 的窗口,但您尝试使用 cvShowImage() 绘制到另一个不存在的窗口(名为 cam)!修复它!用 Example2_9 替换出现的 cam

如果这不能解决问题,我可能会用这个替换 main() 的开头:

int main( int argc, char** argv ) 
{
cvNamedWindow( "Example2_9", CV_WINDOW_AUTOSIZE );
CvCapture* capture;

capture = cvCreateCameraCapture( -1 ); //yes, if 0 doesn't work try with -1
assert( capture != NULL );

您的代码在多个地方缺少错误检查,请小心。其中一个函数可能会返回一个错误,在您进行适当的检查之前,您永远不会知道。

您还可以在 Google 上找到一堆调用 cvCaptureFromCAM() 而不是 cvCreateCameraCapture() 的其他 OpenCV 示例。如果以上建议都不行,试试吧!

还有一件事,在我的 Macbook Pro 上,我必须使用 cvCaptureFromCAM(0) 才能使应用程序正常工作。在 Linux 上,我总是使用 cvCaptureFromCAM(-1)。

关于c - 无法在 OpenCV 中检测网络摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3325556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com