原文:http://blogs.mathworks.com/steve/2006/03/28/image-overlays/
Image Overlay
How to overlay the thinned binary image on top of the original image, using a different color. That is, given George:
url = 'http://blogs.mathworks.com/images/steve/36/george.jpg';
I = imread(url);
imshow(I)
and thinned George, using the method given in my previous post:
threshold = graythresh(I);
bw = im2bw(I, threshold);
bw2 = ~bw;
bw3 = bwmorph(bw2, 'thin', inf);
imshow(bw3)
Procedure
Start by making three copies of the original image, one for each channel of the desired RGB image.
out_red = I;
out_green = I;
out_blue = I;
Second, replace the masked pixels in each channel image with the desired color value.
out_red(bw3) = 255; % Class of out_red is uint8, so use 255 instead of 1.
out_green(bw3) = 255;
out_blue(bw3) = 0;
Finally, concatenate the channel images along the third dimension to produce the desired overlay image.
out = cat(3, out_red, out_green, out_blue);
imshow(out)