2012-04-13 132 views
2

参照以下图片,有人可以指导我如何去提取所有的灯泡(b1,b2,b3,b4,b5)并将它们放在单独的图像中(b1.jpg,b2)。 jpg,b3.jpg,b4.jpg,b5.jpg)。使用OpenCV的感兴趣的地区

enter image description here

我可以用一个模板,但问题是灯泡不同,你可以看到不同的大小和形状。 (但是灯泡的外观仍然相同)。

任何意见如何去为此使用openCV?

感谢和问候,

Heshsham

+0

标题有点误导。 – karlphillip 2012-04-13 13:02:06

+0

你能告诉我根据你应该是什么标题,所以下一次我会在发布我的问题之前记住这一点? – gpuguy 2012-04-13 14:02:34

+0

对象提取,模板匹配,图像分割,这些都比您当前的标题更合适。 – karlphillip 2012-04-13 15:10:08

回答

0
  • 那么,如果你正在使用的模板,为什么不不同的模板?保留一堆模板,将它们与图像进行匹配。无论哪个给你最好的匹配是你的候选人。
  • 这样做的第二种方式是,如果我正确理解问题,就是使用SURF功能。 SURF对于倾斜,透视和旋转变化非常稳健,所以它肯定会帮助你计算出灯泡。
  • Here是炫耀使用SURF的链接。简单而优雅。
+0

如果我使用模板,我需要匹配5个模板,每个灯泡..?实际上,我将拥有大约100个灯泡,所以你不认为模板匹配会很慢吗?你认为SURF会是一个更好的解决方案吗? – gpuguy 2012-04-13 13:31:19

+0

是的,模板匹配肯定会很慢。虽然SURF会更快。 – 2012-04-13 16:52:58

0

如果您的示例中背景总是纯白色,您可以执行简单的基于阈值的分割并按大小过滤所产生的区域以消除黑色伪像。

+0

是的,幸运的是背景大多没有噪音。但如果我进行阈值处理,黑色灯泡的底部也会随着噪音而丢失。 – gpuguy 2012-04-13 13:10:50

0

对Georg来说+1,在这种情况下非常简单的过滤器应该足够了。

如果您的数据比您展示的要复杂得多,您可以考虑一下每个灯泡的信息。

我会说一个轮廓和一个黄底部分。

使用这两个信息,我会考虑区分所有的chrome元素,并开始搜索它上面的灯泡。 区域增长可能是一个正确的解决方案,但长。

+0

谢谢。关于噪音,图像背景大多是白色的。但是如果我使用过滤器,它会删除灯泡的黑色部分。所以我想要在不同的图像文件中存储的新图像将不太准确。同样在实际情况下,我将拥有大约100个灯泡。幸运的是所有的灯泡都是垂直的或者具有±-10度的角度。所以你寻找那些黄色部分的想法看起来不错。 – gpuguy 2012-04-13 13:41:41

+0

这绝对是我想要的。在进行计算机视觉方面的工作时,您应该始终专注于您一定能找到的东西。在你的情况下,它是铬部分 – jlengrand 2012-04-13 13:47:40