2017-05-28 508 views
0

我正在从事图像分割,边缘检测,以及在Matlab中通过重建打开和关闭。我试图在非常嘈杂的图像中识别圆形物体,目的是用这些圆形物体的边缘创建一个蒙版,然后将这种蒙版叠加在原始图像中。在通过重建应用打开和关闭以及分水岭函数以识别对象的边界以及原始图像的二进掩模之后,我能够获得对应于全圆和半圆的边缘。尽管识别出的整个圆圈很少,而且大多数情况下只有半个圆圈,但该方法会滤除图像中的大部分噪音。Matlab图像分割和圆形识别

试图获得完整的圆的边缘,我用canny函数进行边缘检测。该函数获取大多数圆形对象的完整边,但也会绘制图像中噪点的边缘。这不允许我创建一个好的蒙版以叠加在原始图像中。

接下来的问题是,如果有任何有效的方法来摆脱Canny函数拾取的噪声,或者如果可以对某些半径的对象执行Canny函数边缘检测,那么只需要我想要的圆形对象以确定具有特定的半径。附加的原始图像是什么导致图像中的噪点是黑暗的垂直带或阴影以及圆圈顶部的明亮光束。附:由于破损的圆形边缘或背景噪音,用于圆形检测的matlab函数“imfindcircles”不适用于我的图像。圆形对象和暗垂直线和亮点的

原始图像作为噪声

+1

可以做hough变换。边缘的嘈杂部分将被过滤。 –

+0

你好门迪。我提到的imfindcircles函数是matlab中的hough变换函数。除非边缘被完全画出并且圆圈填充了一个色调,否则它不会识别这些圆圈。也许我可以使用另一种不涉及hough变换的圆检测方法? – user27407

回答

0

可以预处理应用霍夫变换前的给定图像。你得到的问题是因为图像中亮度的不均匀分布。您可以在边缘检测和Hough变换之前应用一些滤波技术,如同态滤波。同态滤波技术对图像中的亮度进行归一化处理并增加对比度。一旦在此图像上应用Canny边缘检测,您可以使用一些边缘链接算法来填充检测到的边缘之间的间隙,以使用Hough变换获得更好的性能。

的方法是这样的,

图像 - >同态滤波 - > Canny边缘检测 - >边缘连接 - > Hough变换