图像处理:如何找到图像中最大斑点的中心?

信息处理 图像处理 图像分割 霍夫变换
2022-02-13 03:39:54

假设我有一张像这样的图像并对其进行了遮罩,因此所有黄色像素为 1,所有黑色像素为 0。我想 (1) 拟合黄色斑点内仅包含黄色像素的最大可能圆圈;多个圆圈可能适合不规则的斑点,(2)从所有这些圆圈中,确定哪个具有最大的半径,以及(3)找到其中心的位置。我可以为此使用哪些图像处理技术?我熟悉一些形态学操作(比如这些),但还不能到达我想去的地方。

2个回答

做一个距离变换。您会明白为什么这是一个好主意:对于每个像素,您都可以获得到边界的最短距离。这正是内切圆的半径。

由此,只需找到具有最大值的像素。

如果您好奇,请对其进行“非最大抑制”。这是一种“形态学”内核操作,如果任何邻居具有严格更大的值,则将像素设置为 0。

在此处输入图像描述

首先,您在评论中提到的问题肯定包含好主意。

其次,使用形态学运算的一种方法是实现一种迭代算法,该算法使用圆盘作为结构元素执行连续的形态学侵蚀。这个想法是从一个大半径的磁盘开始(最小图像尺寸的一半就足够了),当返回的图像包含至少一个白色像素(假设 1 是白色的)时停止。所有这些都是可以包含在您的“黄色区域”中的最大圆圈的中心。

这种方法可能会很慢,因为它会测试所有的可能性。优化当然是可能的(也许是二分法)。

希望它会有所帮助。