[討論] label矩陣

作者: andgitisaac (AndGiTiSaaC)   2016-09-19 17:08:51
請問各位前輩們
現在有個label矩陣
L = [2 2 2 2 3;
2 3 2 3 3;
2 3 2 4 4;
2 2 2 4 4;
1 1 2 1 1];
但目前碰到的問題得把
即便是相同label
但沒有連通的區域給分離(4連通)
也就是說L變成
L = [2 2 2 2 3;
2 6 2 3 3;
2 6 2 4 4;
2 2 2 4 4;
1 1 2 5 5];
目前的作法是
maxlabel = max(L(:))
for n = 1:max(L(:))
[bw, num] = bwlabel(L == n, 4)
if num > 1
for k = 2:num
maxlabel = maxlabel + 1
L(bw == k) = maxlabel
end
end
end
但是由於label矩陣標籤數非常多,200多組就要花快十秒
想請問前輩們有沒有其他更好的做法
作者: sunev (Veritas)   2016-09-19 17:46:00
內層的 if for-loop可以避掉L(bw>1)=L(bw>1)+maxlabel-1;maxlabel=maxlabel+num-1;

Links booklink

Contact Us: admin [ a t ] ucptt.com