首页 文章

Matlab图像分割与圆识别

提问于
浏览
0

我正在研究图像分割,边缘检测以及Matlab中的重建打开和关闭 . 我试图在非常嘈杂的图像中识别圆形物体,目的是用这些圆形物体的边缘创建一个遮罩,然后将这种遮罩叠加在原始图像中 . 在通过重建打开和关闭以及分水岭功能来识别对象的边界和原始图像的二元掩模之后,我能够获得对应于完整和半圆的边缘 . 虽然识别出的圆圈非常少,而且我大多数都是圆圈,但这种方法可以滤除图像中的大部分噪点 .

试图获得整圆的边缘,我使用canny函数进行边缘检测 . 此函数获取大多数圆形对象的完整边缘,但它也会绘制图像中噪声的边缘 . 这不允许我创建一个好的遮罩来叠加在原始图像中 .

那么问题是,是否有任何有效的方法来消除canny函数拾取的噪声,或者是否可以对某些半径的对象进行canny函数边缘检测,因为我想要识别的圆形对象具有具体半径 . 附图是导致图像中噪声的原始图像是暗垂直带或阴影以及圆顶上的明亮光束 . 附:由于圆形边缘或背景噪声破碎,用于圆检测的matlab函数“imfindcircles”对我的图像不起作用 .

圆形物体的原始图像和黑暗的垂直线条和亮点作为噪声

1 回答

  • 0

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

    这个过程是这样的,

    image - > homomorphic filtering - > canny edge detection - > edge linking - > Hough变换

相关问题