Preserve the label information when extracing boundaries from label matrix
1 次查看(过去 30 天)
显示 更早的评论
Hello, I would like to get the boundary labels when extracting boundaries from label matrix.
Right now, I understand that I can generate boundary masks from the following function:
bm = boundarymask(labelmatrix), however, the generated masks are binary, that is to say, I wouldn't know which mask correspond to what label. I am wondering if there is a way to preserve such information, so that I can know which boundary is for label 1, 2, 3..., etc.
Thanks in advance!
0 个评论
回答(2 个)
DGM
2021-12-20
You can do something like this:
A = imread('blobs.png');
L = bwlabel(A);
B = L.*boundarymask(L); % multiply
[min(L(:)) max(L(:))] % label array has 28 blobs
[min(B(:)) max(B(:))] % boundary array also has 28 labeled blob boundaries
0 个评论
yanqi liu
2021-12-20
clc; clear all; close all;
A = imread('kobi.png');
L = superpixels(A,100);
% label id
inds = sort(unique(L(:)));
% for every label id
mask = boundarymask(L);
figure
imshow(mask)
hold on;
for i = 1:length(inds)
maski = boundarymask(L==inds(i));
% display every label by different color
[ri,ci] = find(maski);
plot(ci,ri,'.','Color',rand(1,3))
end
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Segmentation and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!