2015-09-21 341 views
0

因此,我正在尝试编写一些代码,让我可以在下图中看到您看到的保险丝。我已经想出了两种方法:图像分割

1)基于颜色。我使用OpenCV的inRange函数的阈值。除棕色保险丝外,该方法适用于所有保险丝。棕色的保险丝与保险丝本身的颜色过于相似,因此很难分割出来。

2)I认为阈值化图像重,这样我可以检测白点/终端上使用的OpenCV SimpleBlobDetector熔丝本身。然后,我通过彼此之间的距离过滤出斑点。由于我知道保险丝的大小,我可以过滤出无效的保险丝。这种方法适用于所有的保险丝,但是白色的保险丝即使在最高限幅的图像中也是如此。

我希望我能得到怎样段这样的图像上的指针。背景扣除工作?

enter image description here

+0

您是否考虑过边缘检测?您可以使用检测到的边缘来划分保险丝并比较颜色。由于您已经知道分界线,因此应该很容易找到(全部)保险丝。 –

+0

是的,我有。但是,棕色保险丝和黑色保险丝之间的边缘太软,并不总是以保险丝周围的完整轮廓出现。 – saad

+0

也许你可以通过缺少黑色来识别棕色保险丝。 – beaker

回答

2

我与分割的经验是,一个单一的方法往往不为困难分割工作。如果一种算法对所有的算法都有效,除了棕色,其他算法都是白色的,那么两者的结合应该会产生完整的结果。我知道有一个优雅的算法很好,但我的许多最好的结果都不得不求助于多种技术的混合。

我会考虑的信道分离成RGB,色相,饱和度,和值,并且在每个信道单独地寻找。有时,颜色看起来非常相似的褐色具有明显不同的饱和度或颜色通道值。增加和减少不同的通道有时也可以增强对比度。这很简单,但在很多情况下会产生一个快速和简单的输出,可用于阈值,分水岭(见下文)或可能背景扣除。

我想你可能也想尝试watershed algorithm。许多examplesexplainations都是available。分水岭要求您提供一个包含背景(保险丝和表格)和每个前景对象(保险丝)的掩膜。据我了解,您已经可以检测到保险丝上的触点,以便完成一件。

另一种方法是只接受你无法看到棕色的保险丝。如果您可以检测空插槽和其他所有颜色,您可以通过扣除棕色部分的位置来知道。

它必须知道会有什么工作,事先没有进行一些实验,但是这应该给你如何提高你所拥有的一些想法。

+0

谢谢!我的印象是,分水岭只是为了连接对象?它会适用于这种情况吗? – saad

+0

不需要连接对象,虽然这是流域的用途。 [我的一个链接]中有一些例子(http://cmm.ensmp。fr /〜beucher/wtshed.html)将它与未连接的对象一起使用,并且我也习惯于未连接的对象。祝你好运! –