2012-06-25 37 views
-1

对于某些图片分析,我正在寻找一种有效的算法来计算从某个(x,y)点到具有相同值的数组中另一个点的距离。如何计算2ndArray中的距离?

我想用它来检测包含相同颜色的大区域。有人有想法吗?

例如,我有以下矩阵,并希望检测左上方的正方形。

[0 255 255 0 0 ] 
    [0 255 255 0 0 ] 
    [0 255 0 0 0 ] 
    [0 0 0 0 255] 
+0

什么构成“大面积”?一些预期产出的投入会很大。 –

+0

一个例子:我写了一个颜色检测器,它创建了一个检测到的颜色的新图像(掩模): 原始:http://www.pic-upload.de/view-14840565/blueSky1.jpg“ 检测到蓝色:http://www.pic-upload.de/view-14840555/colorDetectorTest__blueSky1.jpg.jpg 现在我想获得一些关于白色像素位置的信息 – blackSheep

回答

1

您可以将矩阵视为图。将每个单元看作一个节点。如果两个相邻单元具有相同的值,则假定这些单元之间存在连接。找到图中所有连接的组件,然后找出最大的连接组件。

另一个非常相关的方法是Region Growing算法。这个想法是使用递归来访问给定种子像素中的所有附近节点。所以,就你的情况而言,如果你可以用给定的颜色提供一个种子点,算法将能够找到从给定点建立的所有区域。这可能是一个起点,你可以尝试寻找使用区域增长作为基地方法的最大区域。