基于像素密度的图像分割

时间:2013-12-29 13:27:50

标签: python opencv image-segmentation

我需要一些帮助来开发一些代码,将二进制图像分割成某个像素密度的分量。我一直在做OpenCV算法的一些研究,但在开发我自己的算法之前,我想问一下,确保它还没有完成。

例如,在这张图片中,我有代码将其作为二进制图像导入。但是,有没有办法从线条中分割对象中的对象?我需要分割节点(角落)和对象(在这种情况下是圆圈)。然而,对象不一定必须是形状。

我认为解决方案是使用像素密度。大多数图片将由线条组成,并且对象的像素密度大于线条的像素密度。有没有办法将其分割出来?

以下是该任务的一个工作示例。

原始图片:

Original Picture

节点分割后产生的图像(多条线的交叉点)和组件(图中电阻器或电压源等电子元件)

Node 1

Voltage Source

Node 2

Resistor

Node 3

Node 4

3 个答案:

答案 0 :(得分:3)

您可以使用integral image快速计算矩形区域中黑色像素的密度。然后可以用不同比例的移动窗口执行高密度区域的检测。这与面部检测的工作方式非常相似,但只使用一个超简单的功能。

在计算积分图像之前,使所有边缘变得像skeletonizing一样缩小可能是有益的,以使结果对宽线不敏感。

答案 1 :(得分:1)

如果我理解正确,你想要检测图像中的线条和圆圈,对吗?

如果是这种情况,请查看Hough line transformHough circle transform

答案 2 :(得分:1)

OpenCV有一些functionality for finding contours能够将轮廓放在层次结构中。它可能就是你要找的东西。如果没有,请添加一些有关预期输出的信息!