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

23 views (last 30 days)
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.

Answers (2)

Image Analyst
Image Analyst on 17 Feb 2016
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 Comments
Image Analyst
Image Analyst on 24 Feb 2016
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).

Sign in to comment.


Walter Roberson
Walter Roberson on 17 Feb 2016
bwareafilt to remove the speckles. bwmorph() to skeletonize.
  1 Comment
Meghashree G
Meghashree G on 17 Feb 2016
Sorry sir..I dint get you..how do i make the image thickness one pixel wide??please help me with the code.Thank you

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!