Matlab - 相邻簇(在两个不同的矩阵中)

时间:2013-12-20 13:53:29

标签: matlab comparison cluster-analysis

给定两个矩阵A和B(相同大小 - 都只包含1和0)以及在两个矩阵上使用bwconncomp的相关结构。

如何判断矩阵A中的簇(其位置是否包含在CC.PixelIdcList中)的相邻像素的位置是否与矩阵B中某个簇中像素的位置相匹配?

我想制作一个列表,其中包含矩阵A中每个簇的id以及与其相邻的簇的id(在矩阵B中)以及在矩阵B中具有位置匹配簇的相邻像素的位置。 / p>

  

ID群集(来自A) - ID群集(来自B) - 位置

1 个答案:

答案 0 :(得分:0)

我认为放弃使用bwconncomp并使用bwlabel(或bwlabeln,如果这是N维)可能更简单。

[labelA, numA] = bwlabel (mA);
[labelB, numB] = bwlabel (mB);

inter = labelA & labelB;

cluster_ind = unique (labelA(inter));

match_cluster = repmat ({[]}, numA, 1);
match_ind     = repmat ({[]}, numA, 1);
for idx = cluster_ind
  %% index with IDs from A to get...
  %% ... an array with IDs from B that intersect it
  match_clusters{idx} = unique (labelB(labelA == idx));
  %% ... linear indices for the elements that match something in B 
  match_ind{idx} = find (labelA === idx);
end

我假设你有原始图像,然后再将它们传递给bwconncomp,否则,从输出中重建标签图像应该是微不足道的。