对于一些图片分析,我正在寻找一种有效的算法来计算从某个 (x,y) 点到数组中具有相同值的另一个点的距离。
我想用它来检测包含相同颜色的大区域。有人有想法吗?
例如,我有以下矩阵,想要检测顶部的左方。
[0 255 255 0 0 ]
[0 255 255 0 0 ]
[0 255 0 0 0 ]
[0 0 0 0 255]
您可以将矩阵视为图形。将每个单元格视为一个节点。如果两个相邻单元格具有相同的值,则假设这些单元格之间存在连接。找出图中所有的连通分量,然后找出最大的连通分量。
另一个非常相关的方法是区域增长算法。这个想法是使用递归来访问给定种子像素的所有附近节点。因此,在您的情况下,如果您可以提供一个具有给定颜色的种子点,该算法将能够找到从给定点构建的所有区域。这可能是一个起点,您可以尝试使用区域增长作为基本方法来寻找最大的区域。