首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV:从usb摄像头拍摄的黑色图像

OpenCV:从usb摄像头拍摄的黑色图像
EN

Stack Overflow用户
提问于 2014-02-18 09:28:30
回答 4查看 14.6K关注 0票数 6

我正试图用opencv从USB摄像头上捕捉到一个图像帧。然而,我总是得到一个黑色的框架。我看过很多关于这个问题的帖子,并且尝试了所有的建议,但对我来说都没有用。

我开始使用这里讨论的代码:http://opencv-users.1802565.n2.nabble.com/Using-USB-Camera-td6786148.html

我尝试过在许多“关键”句子之后加入cvWaitKey(1000)方法。如您所见,等待值非常高(1000)。

我也试图保存图像帧,同样,它也是一个黑色的图像。

我使用的系统如下:

  • OpenCV 2.2.0
  • Windows 7,32位
  • 2010 (C++)
  • 一块usb摄像头(我不认识制造商)

usb摄像头与AMCAP.EXE 1.00很好地工作。

可能是因为Windows使用了摄像头驱动程序吗?我可以换到其他在OpenCV 2.2.0中工作更好的驱动程序吗?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2014-02-25 17:04:30

好的。正如我答应给你的请求在评论中,抱歉让你久等了,真的很忙。也几乎没有时间贴出这个答案。但这就是:

这是我在模拟opencv捕捉黑色图像。在输出窗口上,我在评论中询问了它的内容,它显示了一个错误。

经过调查后,我意识到这是由于相机的可用格式:

因为这是个更大的摄像头。如果你有一个更好的相机,如罗技一号,你可以看到,可用的格式是如此之多。

有很多方法,你可以尝试一些方法,比如

代码语言:javascript
复制
capture.set(CV_CAP_PROP_FRAME_WIDTH , 640); 
capture.set(CV_CAP_PROP_FRAME_HEIGHT , 480); 
capture.set (CV_CAP_PROP_FOURCC, CV_FOURCC('B', 'G', 'R', '3'));//diff from mine, using as example

然后摄像头就能拍到了。这个摄像头有点问题,所以拍到的图像也没那么漂亮。

希望这是你的问题。但情况可能并非如此。我喜欢调试问题,但我不能把所有可能发生在你身上的原因都记下来,因为我真的很忙,正如你要求的一个例子,这就是其中之一。干杯。如果您能告诉我您输出窗口错误时说了什么,我可能会提供更多帮助。

编辑(在评论中回答更多):

好吧,我想让你试试几件事:

1)首先,不要使用cvQueryFrame或类似的捕获方法,我希望您尝试使用该摄像头来捕获视频。等到10秒钟,看看它是否成功。原因是,一些相机(低质量的)需要相当长的时间来热身,它们捕捉到的最初几帧可能是空的。

2)如果第一步不起作用,试着键入

代码语言:javascript
复制
cout << cv::getBuildInformation() << endl;

粘贴媒体I/O和视频I/O的结果?我想看看结果。我也怀疑你的库依赖,但既然你说它与罗技相机工作,我怀疑是这样的。当然,有可能是因为相机与OpenCV不兼容。顺便问一下,这台相机有牌子吗?

3)或者,只要在网上搜索usb驱动程序并安装它,我就有一个朋友因为类似的问题而这么做,但不确定这个过程。

票数 6
EN

Stack Overflow用户

发布于 2014-02-18 10:11:34

我建议的第一件事是,访问这个链接,检查你的相机是否正常工作。

http://www.youronlinemirror.com/

如果是的话,那么通过下面的链接开始学习,您还会发现一个很好的opencv c++代码,您正在使用的代码是opencv1 api的c代码,我更愿意鼓励您选择c++而不是旧版本的opencv。

http://opencv-srf.blogspot.in/2011/09/capturing-images-videos.html

如果你想要你的代码的答案,那么,它很简单,因为你说它给了一个黑色的屏幕,在我的情况下,当我开始使用opencv时,它无法从设备中获取数据,所以,尝试一下,它可能会工作,就像它对我一样。

添加

代码语言:javascript
复制
cvQueryFrame( capture ); 

在此之前

代码语言:javascript
复制
IplImage* frame = cvQueryFrame( capture ); 
票数 1
EN

Stack Overflow用户

发布于 2016-10-19 19:09:13

我也经历过和你一样的问题。然后我把版本从3.1.0改为2.4.13,然后我的网络摄像头就开始工作了!不再有黑色图像。我想3版本与vs15不兼容。你可能早就解决了这个问题。但只要张贴,让其他人知道,如果他们碰巧有相同的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21849300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档