【问题标题】:Is it possible to use OpenCV to accurately detect water in a sewage pipe?是否可以使用 OpenCV 准确检测污水管中的水?
【发布时间】:2011-09-15 20:18:57
【问题描述】:

我正在为未来的项目研究污水管道中水的图像识别。

我一直在研究 OpenCV,它看起来非常擅长识别对象的开始和停止位置。但是,OpenCV 中是否有任何东西不仅可以将水从管道中分离出来,还可以识别哪个是哪个?

编辑:这是图像类型的示例(取自视频): http://imageshack.us/f/851/vlcsnap2011061516h22m54.png/

【问题讨论】:

  • 请添加示例图片。如果没有任何示例图像,很难建议如何解决图像处理问题。
  • 按要求添加了示例图片。
  • 嗯 - 看起来我们需要一个 sewage 标签...

标签: c++ opencv image-recognition


【解决方案1】:

您将面临的根本问题不在于该软件。 OpenCV 有足够的容量来完成您尝试做的事情。您需要解决的真正工程将是光学的。您需要确保适当的视野和照明。

有些集成商可以使用您需要的大多数软件平台将图像处理软件和光学工程结合在一起。 http://www.machinevisiononline.org/ 是一个不错的资源

【讨论】:

  • 是否有任何现有的软件项目可以处理类似的问题(使用 OpenCV)?编辑:另外,为了澄清一下,图像源将来自所有不同类型的硬件,所以我无法真正保证或控制传入图像的质量。
  • @David 有一整套类似于 opencv 的库——主要的商业库可能是 MIL(matrox 成像库)。困难在于知道你在寻找什么水的“样子”——而不是图书馆的细节
  • +1 问题应该改写为“视觉算法可以检测管道中的水吗?”
  • Matlab 和 LabVIEW 也有完美的图像库插件。但是,您必须知道要使用框中的哪些工具。有很多可能性:背景减法、边缘检测、模式识别、光流测量等。我的建议是使用您选择的工具对这些方法中的两个或三个进行原型制作。您将了解它们适用的照明+场景条件。然后,您可以使用加权或投票算法组合各种方法。对此要有经验——人类的视觉皮层是惊人的——软件永远无法与之匹敌。
【解决方案2】:

既然您说您有视频可以帮助您定义什么是“水”,什么是“管道”。 “管道”是图像流中不移动的部分(从固定摄像机看),而“水”部分是连续帧中差异较大的部分(由于照明和流动)。

顺便说一句,你的传感器真的必须是光学的吗?既然您已经在系统中引入了相对昂贵的传感器,您就不能使用专门的传感器来检测您真正想要的是什么吗?

【讨论】:

  • 同意,看看您可以使用哪些其他工业传感器。但是,示例图像中的安全/IP/网络摄像头质量并不能完全证明传感器价格昂贵。 CMOS 对于您获得的数据量来说非常便宜。
【解决方案3】:

一个想法是看纹理。 在示例图像中,水面似乎比管道的可见部分更光滑。

【讨论】:

    【解决方案4】:

    水位传感器不仅可以告诉您是否有水,还可以告诉您深度。知道深度和管道直径可以计算通过管道的水量。见

    http://www.instrumart.com/products/25311/flowline-echosonic-ii-ultrasonic-level-transmitter

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      相关资源
      最近更新 更多