Clear Filters
Clear Filters

Read, Crop and then Save multiple images

33 views (last 30 days)
I am really new to Matlab, but I need for a project to crop multiple images with the same rectangle and then save them into a new folder.
(I have 172 images in the folder, first one is called frame10.jpg, last one is frame182.jpg)
Here's my code so far:
for n=10:182
image_{n}=imread(sprintf('frame%s.jpg', num2str(n)));
end
[x rect] = imcrop(image_{10})
for n=11:182
imcrop(image_{n}, rect)
end
When I Run it, it opens up all the figures of the images correctly cropped.
My questions are: how can I tell matlab not to open up all the figures of the cropped images since I do not need to see them?
How do I save all the cropped images in a new folder 'Cropped' inside the current folder? (possibly using imwrite but it's not necessary)

Accepted Answer

KSSV
KSSV on 12 Apr 2018
Edited: KSSV on 14 Apr 2018
images = dir('*.jpg') ; % GEt all images of the folder
N = length(images) ; % number o fimages
I = imread(images(1).name) ; % crop one to get rect
[x, rect] = imcrop(I) ;
for i = 1:N
I = imread(images(i).name) ; % REad image
I = imcrop(I,rect) ; % crop image
[filepath,name,ext] = fileparts(images(i).name) ;
imwrite(I,strcat(name,'cropped',ext)) ; % Save image
end
  8 Comments
hana razak
hana razak on 6 Sep 2018
Thank you very much dear experts. Your answers really made my day :)
nisa sarfraz
nisa sarfraz on 14 Jan 2020
I = imread(images(1).name) ; % crop one to get rect
this line gives error of index matrix dimension exceeds. please suggest some solution.

Sign in to comment.

More Answers (1)

Ismail Nasri
Ismail Nasri on 7 Feb 2020
</matlabcentral/answers/uploaded_files/270469/Captureblm.PNG> Hiw can i use this script for detecting crop and saving multiples images

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!