使用OpenCV进行机器视觉的摄像头建议

时间:2014-01-07 09:46:46

标签: opencv video camera computer-vision

编辑:跳到最后查看我买的相机。

对于大学项目,我必须拍摄半透明窗口,检测某些形状并将结果发送到另一台计算机。 (帖子底部的示例图片)使用Win7中的OpenCV使用c ++进行检测。

我认为最简单的解决方案是将相机直接连接到计算机并在机器上进行计算。我需要至少20fps,分辨率为1280 x 1024可能足以进行检测。

我决定使用相机哪个相对自由。你能推荐一款适用于OpenCV并且易于使用的相机吗?

这个问题已被问过几次,但大多数都没有答案或已经过时了:

Recommended HD camera(我发现最好的主题。建议使用logitech quickcam 9000 pro,不再在市场上出售)

Which Machine Vision Vendor provides OpenCV support(一般建议不知道该怎么做)

Which Camera for body detection(2010年,没有明确答案)

OpenCV Webcam Compability(2011)

List of compatible camera tested with opencv(死链接,尚未找到副本)

Industrial Camera in Python(没有答案而不是我需要的)

Example Picture taken with Samsung Galaxy S2

编辑:仅供未来的读者使用:我们现在使用的是罗技HD Pro c920目前的70欧元。一个合适的“专业”相机将花费330欧元(没有镜头)。

Edit2:两个月后使用它进行一点点更新。

相机的角度小于官方论坛上传达的角度。 Here是一个SO问题,我上传了一些示例图片。

相机也只能使用默认驱动程序以15 fps运行,因此请不惜一切代价安装它们!

另外,较新的型号(如我所获得的型号)粘在一起,因此您无法打开它们并轻松手动调整深度。

Edit3:只是最后一次更新。我的项目几乎完成,没有其他任何事情发生。 :)

1 个答案:

答案 0 :(得分:13)

对你来说有点晚了。但它会帮助其他想要开发机器视觉项目的人。你也是对的,没有很多关于OpenCV和机器视觉的详细资源。

首先,网络摄像头将成为商业应用的业余解决方案。如果您想制作工业应用程序进行检查,您需要一个特殊的照明和一个工业相机。您可以在相机上使用视频或触发模式。另外,考虑频闪模式照明可以在生产线上提供更好的结果。我买的一个示例相机模型是PointGrey。某些型号可以在外面触发(您可以使用传感器进行触发):
http://ww2.ptgrey.com/camera-applications
http://www.baslerweb.com/Cameras-42173.html
还有其他智能相机,不需要任何PC或照明,如: http://www.teledynedalsa.com/imaging/products/vision-systems/cameras/-boa-overview http://www.datalogic.com/eng/products/industrial-automation/machine-vision/a30-series-pd-549.html http://www.microscan.com/en-us/Products.aspx

所有相机制造商都提供自己的SDK。它显示了如何获取帧原始数据并将其转换为任何格式,如位图,OpenCV数据格式,另存为jpg等。 PointGrey的一些例子:
http://www.ptgrey.com/products/pgrflycapture/samples.asp
将帧原始数据转换为OpenCV图像格式很容易,您应该将原始数据复制到OpenCV图像数据。你可以使用memcpy。这里有一些例子:
http://www.technical-recipes.com/2011/integrating-the-flycapture-sdk-for-use-with-opencv
http://kevinhughes.ca/tutorials/point-grey-blackfly-and-opencv
对于所有其他相机显示器,您可以使用类似的方式。 另外我建议选择GigE接口相机,它们正在成为标准配置。

祝你好运。