首页 > 解决方案 > MATLAB图像处理--如何提高寻找圆度算法的准确率?--

问题描述

我有一个带有 tif 文件的建筑项目图像。图像有一些四分之一圆代表门。我试图在 Matlab 中实现 imfindcircles 和 regionprops(偏心)函数。但不幸的是,函数并没有给我们一个有效的解决方案,比如有些圈子找不到,有些圈子发现那个位置不存在圈子。有什么不同的想法或解决方案吗?我还用 jpg 文件附加了我的图像。谢谢...

https://imgur.com/a/f0r56fr

标签: imagematlabimage-processing

解决方案


图像是二进制的并且质量很好。特别是,边缘是连续的,这是一项巨大的资产。另一方面,圆弧与其他特征交叉,这使得它们更难处理。

以下是我的建议:

  • 将边缘细化到单个像素宽度;

  • 使用轮廓跟踪算法来追踪边缘并停在交界处(交界处是一个像素有两个以上相邻像素的地方)或角度(方向急剧变化);

  • 检测弯曲的边缘(取三个间隔的点并观察它们是否偏离了一条线);

  • 估计中心和半径(你可以重复更多的三元组来检查圆度);

  • 保留与预期半径兼容的碎片;

  • 检查附近的部分(圆形或短段)是否与全局圆兼容,然后加入它们。

在极端情况下,弧可以分成许多短片。为了解决这个问题,您可以检测短段的“链”并测试它们的共圆性。


推荐阅读