MATLAB Answers

How can i crop multiple images

16 views (last 30 days)
shru s
shru s on 28 May 2017
Commented: Image Analyst on 28 May 2017
Hello, I have, with the help of regionprops, drawn a bounding box around the parts I would like to crop. Could anyone tell me how i can crop the images and store it. Thank you. Edit: I am trying to crop handwritten characters.

  0 Comments

Sign in to comment.

Accepted Answer

MathReallyWorks
MathReallyWorks on 28 May 2017
Hello shru,
Use this code for properly cropping the regions and saving them in a folder:
grayImage = imread('shapes.png');
[rows, columns, numberOfColorBands] = size(grayImage);
if numberOfColorBands > 1
grayImage = grayImage(:, :, 2);
end
binaryImage = grayImage > 128;
binaryImage = imclearborder(binaryImage);
binaryImage = bwareaopen(binaryImage, 1000);
labeledImage = bwlabel(binaryImage, 8);
[labeledImage, numberOfBlobs] = bwlabel(binaryImage);
blobMeasurements = regionprops(labeledImage, 'BoundingBox');
for m=1:numberOfBlobs
BB(m,:) = blobMeasurements(m).BoundingBox;
end
txt=['A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K'];
% txt is Random matrix of character for naming the files for saving them
for i=1:numberOfBlobs
imagen = imcrop(grayImage, [BB(i,1)-5 BB(i,2)-5 BB(i,3)+10 BB(i,4)+10]);
figure,
imshow(imagen);
saveas(gcf,txt(i),'jpg'); %All cropped images are stored with the names A,B,C,D etc.
end
original image:
Result:

  2 Comments

shru s
shru s on 28 May 2017
Beautiful piece of code. Thank you. But the thing is, I am trying to crop out handwritten characters. So this method is not helping me do that.
Image Analyst
Image Analyst on 28 May 2017
Printed or script? You forgot to attach your image.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!