给定两个矩阵A和B(相同大小 - 都只包含1和0)以及在两个矩阵上使用bwconncomp
的相关结构。
如何判断矩阵A中的簇(其位置是否包含在CC.PixelIdcList
中)的相邻像素的位置是否与矩阵B中某个簇中像素的位置相匹配?
我想制作一个列表,其中包含矩阵A中每个簇的id以及与其相邻的簇的id(在矩阵B中)以及在矩阵B中具有位置匹配簇的相邻像素的位置。 / p>
ID群集(来自A) - ID群集(来自B) - 位置
答案 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
,否则,从输出中重建标签图像应该是微不足道的。