bwboundaries - label each object with different color

3 次查看(过去 30 天)
Hi,
In this example below the labeled objects are shown using the jet colormap, on a gray background, with region boundaries outlined in red.
Therefore, how can I change the background to white and label each object with different color?
%based on http://www.mathworks.es/es/help/images/ref/bwboundaries.html
I = imread('rice.png');
BW = im2bw(I, graythresh(I));
[B,L] = bwboundaries(BW,'noholes');
imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 2)
end
Cheers and thanks.

采纳的回答

Image Analyst
Image Analyst 2013-10-14
Yes, a list of standard colors is given here: http://en.wikipedia.org/wiki/List_of_colors Hover over the color to find the rgb values. Then replace 'r' in your code with the color you want. Or you can use a row from a built-in colormap, such as myColorMap(k, :).
myColorMap = jet(length(B));
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'Color', myColorMap(k,:), 'LineWidth', 2)
end

更多回答(1 个)

Anand
Anand 2013-10-14
The third input to label2rgb is the specification for zero-color, i.e. the background.
You can specify a black background by replacing the call to imshow with the call below:
imshow(label2rgb(L, @jet, [0 0 0]))

类别

Help CenterFile Exchange 中查找有关 Graphics Object Programming 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by