Facing problem in saving the images in folder

1 次查看(过去 30 天)
I need some help in my code. I am trying to read the images from a folder and detect faces from then and save the cropped images in another folder. But while running the code it is not saving the cropped images into the folder properly. It's overwriting the images.
HER IS THE CODE
Folder = 'OUTPUT';
FileList = dir(fullfile(Folder, '*.jpg'));
for iFile = 1:numel(FileList)
File = fullfile(Folder, FileList(iFile).name);
I = imread(File);
% figure(1),imshow(I);
FaceDetect = vision.CascadeObjectDetector;
BB = step(FaceDetect,I);
% figure(2),imshow(I);
for i = 1:size(BB,1)
rectangle('Position',BB(i,:),'LineWidth',3,'LineStyle','-','EdgeColor','r');
end
for i = 1:size(BB,1)
J= imcrop(I,BB(i,:));
M = imresize(J,[48 48]);
imgray=rgb2gray(M);
fname = sprintf('%06d.jpg',i);
fpath = fullfile('Fdetected', fname);
imwrite(imgray,fpath);
end
end

采纳的回答

Balakrishnan Rajan
Balakrishnan Rajan 2019-1-30
The 'fname' line of your code:
fname = sprintf('%06d.jpg', i);
should be in the outer most for loop. Then the 'i' will correspond to different input images. Presently, it seems to be another intermediate variable used for cropping the image.
  3 个评论
saeeda saher
saeeda saher 2019-1-30
编辑:saeeda saher 2019-1-30
Thank You, Will you please guide me through editing my code? I tried but its not working
Balakrishnan Rajan
Balakrishnan Rajan 2019-1-30
编辑:Balakrishnan Rajan 2019-1-30
I think something along the lines of:
Folder = 'OUTPUT';
FileList = dir(fullfile(Folder, '*.jpg'));
for iFile = 1:numel(FileList)
File = fullfile(Folder, FileList(iFile).name);
I = imread(File);
% figure(1),imshow(I);
FaceDetect = vision.CascadeObjectDetector;
BB = step(FaceDetect,I);
% figure(2),imshow(I);
for i = 1:size(BB,1)
rectangle('Position',BB(i,:),'LineWidth',3,'LineStyle','-','EdgeColor','r');
end
for i = 1:size(BB,1)
J= imcrop(I,BB(i,:));
M = imresize(J,[48 48]);
imgray=rgb2gray(M);
end
fname = sprintf('%06d.jpg',iFile);
fpath = fullfile('Fdetected', fname);
imwrite(imgray,fpath);
end
Also run MATLAB as administrator. Create the folder 'Fdetected' beforehand. I think thats it.
Also remember to change it to 'iFile' when placing the lines outside as the iterator for the outermost loop is 'iFile' in your case.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by