繁体   English   中英

OpenCV:从USB摄像头拍摄的黑色图像

[英]OpenCV: black image captured from usb camera

我试图使用opencv从USB摄像头捕获图像帧。 但是我总是得到一个黑框。 我已经阅读了很多关于这个问题的帖子,并尝试了所有的建议,但没有任何对我有用。

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

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

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

我使用以下系统:

  • OpenCV 2.2.0
  • Windows 7,32位
  • Visual Studio 2010(C ++)
  • 一块板USB相机(我不知道制造商)

USB相机适用于AMCAP.EXE 1.00。

可能是因为Windows使用了相机驱动程序? 我可以更改为其他更适合OpenCV 2.2.0的驱动程序吗?

谢谢

好。 正如我在评论中答应了你的要求,抱歉让你久等了,真的很忙。 几乎没有时间发布这个答案。 但这里是:

这是我模拟opencv捕获黑色图像。 在输出窗口中,我在评论中询问了它的内容,表明存在错误。

在此输入图像描述

经过调查,我意识到这是由于相机的可用格式: 在此输入图像描述

因为这是一个糟糕的相机。 如果您有像罗技这样的更好的相机,您可以看到可用的格式更多。 在此输入图像描述

有很多方法,你可以尝试一些类似的东西

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捕获视频,而不是使用cvQueryFrame或类似的捕获方法。 等到可能会说10秒,看看它是否成功。 原因是,一些相机(质量较差的相机)需要很长时间来预热,而它们捕获的前几帧可能是空的。

2)如果第一步不起作用,请尝试输入

cout << cv::getBuildInformation() << endl;

并粘贴媒体I / O和视频I / O的结果? 我想看看结果。 我也怀疑你的库依赖,但是因为你说它适用于罗技相机,我怀疑是这样的。 当然,这总是有可能是因为相机与OpenCV不兼容。 顺便提一下相机有没有品牌?

3)或者,只需在线搜索USB驱动程序并安装它,我有一个朋友为类似的问题做了这个,但不知道这个过程。

首先,我建议,访问此链接并检查您的相机是否正常工作

http://www.youronlinemirror.com/

如果是,那么通过下面的链接来开始使用,你也会找到一个好的opencv c ++代码,你使用的代码是opencv1 api的c代码,我宁愿鼓励你去c ++而不是旧版本的opencv。

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

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

cvQueryFrame( capture ); 

之前

IplImage* frame = cvQueryFrame( capture ); 

我遇到了和你一样的问题。 然后我只是将版本从3.1.0更改为2.4.13,然后我的网络摄像头正常工作! 没有更多的黑色图像。 我猜这个版本与vs15不兼容。 认为你很久以前就已经解决了这个问题。 但只是发帖让别人知道他们是否碰巧遇到同样的问题。

即使我在运行OpenCV相关程序时遇到了同样的黑屏问题。 因此,我没有使用USB摄像头,而是使用了移动相机,它工作得很好。 使用谷歌应用程序,如DroidCam(在移动设备和笔记本电脑/ PC上安装DroidCam),通过Wi-Fi将您的移动相机连接到笔记本电脑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM