How to apply thinning algorithm to color image

6 次查看(过去 30 天)
Hi, is there any possible way to apply thinning algorithm to a color image. Exactly like the one I attached. I want to get single line drawing from the color image
Thank you

回答(1 个)

Image Analyst
Image Analyst 2014-4-16
Try this for starters:
redChannel = rgbImage(:,:,1);
% Threshold (binarize) the red channel.
binaryImage = redChannel < 227; % Use triangle method to get the # automatically.
% Take largest blob. See attached demo. Then...
thinnedImage = bwmorph(binaryImage, 'skel', inf);
Adapt as necessary.
  3 个评论
missC
missC 2014-4-16
Now I got it sir. But how to preserve the color and the intensity of the image without convert to binary image? Or in other words thinned color/intensity image
Thanks.
Image Analyst
Image Analyst 2014-4-16
You can't. It needs to be binary if you're going to skeletonize. After skeletonization you can convert to color if you want:
black = zeros(size(binaryImage), 'uint8');
rgbImage = cat(2, black, black, uint8(binaryImage));
Weight the components if you want a different color.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by