How to thin the image so as to make the thickness of the image to one pixel wide?

10 次查看(过去 30 天)
Hello,i have an image and i want to thin that word image so as to make the thickness of each word to one-pixel wide to make the stroke width uniform.Please help me.

回答(2 个)

Image Analyst
Image Analyst 2016-2-17
Try this
binaryImage = grayImage < 128;
% Remove small blobs;
binaryImage = bwareaopen(binaryImage, 500);
% Skeletonize
skeletonImage = bwmorph(binaryImage, 'skel', inf);
Make sure your image is actually gray scale, not color.
  7 个评论
Image Analyst
Image Analyst 2016-2-24
It's this line that makes it one pixel wide:
skeletonImage = bwmorph(binaryImage, 'skel', inf);
To not remove small blobs, change the 500 to a smaller number, like 20 or 50 or whatever
binaryImage = bwareaopen(binaryImage, 20);
The number you input is the size of blobs, plus smaller ones, that it will throw away (remove).

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2016-2-17
bwareafilt to remove the speckles. bwmorph() to skeletonize.

Community Treasure Hunt

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

Start Hunting!

Translated by