How can I extract characters from a binary image when I have its centroid?
Show older comments
I = imread('download5.png');
J = rgb2gray(I);
K = bwareaopen(J,10,8);
h1 = fspecial('gaussian', 3, 1);
h2 = fspecial('average', 2);
g = imfilter(K,h1, 'replicate');
g1 = imfilter(g,h2, 'replicate');
g1 = ~g1;
g1 = bwmorph(g1,'clean');
g1 = bwmorph(g1,'bridge',Inf);
g1 = imdilate(g1, [1 1 1; 1 1 1; 1 1 1]);
[B, L, N, A] = bwboundaries(g1, 'holes');
s = regionprops(L,'all');
imshow(g1)
hold on
for k = 1:length(B)
boundary = B{k};
if k <= N
plot(boundary(:,2), boundary(:,1))
end
end
centroids = cat(1, s.Centroid);
plot(centroids(:,1),centroids(:,2), 'b*')

In the above image, I am getting extra centroids apart from that of the characters. How can I eliminate the unwanted centroids and extract only the characters using centroids? (Extract meaning that I want to save each character separately as an image)
Accepted Answer
More Answers (0)
Categories
Find more on Image Segmentation and Analysis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!