边缘检测的最快方法是什么?

Cha*_*ara 4 algorithm graphics performance image-processing edge-detection

我正在考虑实施一个基于图像处理的工业问题解决方案.

图像由红色矩形组成.在里面我会看到一个圆圈矩阵.要求是计算以下约束下的圆圈数.(实际应用:计算瓶套中的瓶数.任何缺少的瓶子???)

  1. 操作所需的时间应该非常短.
  2. 我也需要检测红色矩形.我的目标是计算包装中的物品,并且没有机械装置(传感器)来触发相机.所以相机需要连续拍摄照片,但程序应该有办法丢弃不必要的图像.
  3. 处理应该是实时的.
  4. 图像捕获中可能存在"噪声".您可能会看到椭圆而不是圆圈.

我的问题如下,

  1. 什么是与给定场景匹配的最佳边缘检测算法?
  2. 除了边缘检测之外,还有其他可以使用的机制吗?
  3. 我使用的语言和系统的性能之间是否有很大的影响?

Fat*_*tie 8

啊 - 你现在告诉我们瓶子在固定的位置!

这是一个令人难以置信的更容易的问题.

您所要做的就是查看12个点中的每个点,看看是否有黑色区域.没有比这更容易了.

您无需进行任何边缘或形状检测.

就这么简单.

然后你指出盒子可能会被旋转,事情可能会摇摇欲坠.盒子可以旋转一点(甚至很多,每次0到360)非常容易处理.瓶子处于"槽"(即使是摇摆)的事实大大改变了问题的性质.你是主要问题(这很容易)等待每个新的红色正方形(板条箱)在相机下居中.我刚才意识到你的字面意思是"矩阵",特别是你原来问题中的句子.与发现混乱的圆圈相比,这完全改变了一切.找到斑点是否在12点之一处"开启"是"识别图像中的圆圈"的一个完全不同的问题.也许你可以发布一个图像来结束这个问题.


最后,我相信下面的Kenny已经确定了最佳解决方案:blob分析.


"计算瓶套中的瓶数"......

个别瓶子是否位于"槽"中?即,有4x3 = 12个孔,每个瓶子一个.

换句话说,你"只"必须确定12个孔中每个孔中是否有瓶子.

那是对的吗?

如果是这样,你的问题就比一堆"任何地方"的瓶子更普遍的问题要难得多.

很简单,我们从哪里看到瓶子?顶部,侧面,底部或?我们总是看到顶部/底部,或者它们是混合的(即,从顶部到尾部包装).这些问题产生巨大的巨大差异.

  • +1:预定义的插槽数=每个插槽定义一个正方形,计算正方形中的非黑色像素,如果有一个不错的照明,空插槽和非空插槽之间应该有很大的差异.任何图像处理库几乎都可以实时完成,即使在小型嵌入式智能相机上也是如此. (2认同)