使用下面的代码,我可以在每个连接的组件周围绘制一个边界框。
bw_normal2 = im2bw(img, graythresh(img));
bw22 = imcomplement(bw_normal2);
bw3 = bwmorph(bw22, 'dilate');
[label2,n2] = bwlabel(bw3);
stats2 = regionprops(label2, {'Area', 'BoundingBox'});
area2 = stats2.Area;
idx = find((0 <= area2) & (area2 <= 6000))
BW2 = ismember(label2,idx);
figure, imshow(BW2)
imshow(img);
for j=1:n
hold on
rectangle('Position',[stats2(j).BoundingBox(1),stats2(j).BoundingBox(2),stats2(j).BoundingBox(3),stats2(j).BoundingBox(4)],...
'EdgeColor','r','LineWidth',2 );
end
不是在每个连接的组件周围创建一个边界框,而是可以对它们进行随机着色吗?
答案 0 :(得分:2)
为什么不使用label2
?这已经是一个矩阵,每个单独的组件给出不同的值。然后应用其中一个内置的色彩映射,或者生成一个色彩映射,强制背景(零)值为白色或黑色。
imshow(label2,[])
colormap(lines)