crop multiple images with freehand

1 Ansicht (letzte 30 Tage)
talayeh ghodsi
talayeh ghodsi am 25 Mär. 2020
Kommentiert: Image Analyst am 28 Aug. 2020
hi every body. i want to crop multiple images with freehand , and i have written the code below, but i have this eror
Error in Untitled2 (line 19)
I = imcrop(I,BW) ; % crop image
could any body help me please?
images = dir('E:\phd\zahra taati\matlabprozhe\50%\ct50.0% - Copy\*.jpg'); % GEt all images of the folder
N = length(images) ; % number o fimages
I = imread(images(1).name) ;
h_im = imshow(I);
e = imfreehand ;
BW = createMask(e,h_im)
BW(:,:,2) = BW;
BW(:,:,3) = BW(:,:,1);
ROI = I;
ROI(BW == 0) = 0;
figure, imshow(ROI);
for i = 1:N
I = imread(images(i).name) ; % REad image
I = imcrop(I,BW) ; % crop image
[filepath,name,ext] = fileparts(images(i).name) ;
imwrite(I,strcat(name,'cropped',ext)) ; % Save image
end

Akzeptierte Antwort

Ilian
Ilian am 8 Apr. 2020
imcrop should have a rectangle as input, but you have a mask. You could use
roi = drawrectangle();
instead of imfreehand and then change imcrop to
I = imcrop(I,roi.Position);
  3 Kommentare
Ilian
Ilian am 28 Aug. 2020
If you want help I need a bit more than that.
Image Analyst
Image Analyst am 28 Aug. 2020
You need to prepend the folder since the images are not in the current folder:
fullFileName = fullfile(images(i).folder, images(i).name);
I = imread(fullFileName) ; % Read image

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by