0

I have image data (for 40 people) and I am trying to detect face in each image, crop it and save it in another file. I am using MATLAB for this but it doesn't work.

ERROR : Unable to open file "C:\Users\mstfy\Desktop\Matlab\alex\newdata\cropped\" for writing. You might not have write permission.

I think there is something wrong in my for loop.

location = 'C:\Users\mstfy\Desktop\Matlab\alex\newdata\*.jpg';
croppedimg = 'C:\Users\mstfy\Desktop\Matlab\alex\newdata\cropped\';
imds = imageDatastore ( 'C:\Users\mstfy\Desktop\Matlab\alex\newdata' , ...
    'IncludeSubfolders' , true, ...
    'LabelSource' , 'foldernames' );
idx = randperm (numel (imds.Files), 16);
j = 1;
figure
for t = 1: 16
    img = readimage (imds, idx (t));
    FaceDetect = vision.CascadeObjectDetector; 
    FaceDetect.MergeThreshold = 7;
    BB = step (FaceDetect, img);  
    for i = 1: size (BB, 1)     
      rectangle ( 'Position' , BB (i, :), 'LineWidth' , 3, 'LineStyle' , '-' , 'EdgeColor' , 'r' );
    end 
    for i = 1: size (BB, 1)
      J = imcrop (img, BB (i, :)); 
      figure (3);
      subplot (6, 6, i);
      imshow (J); 
      j = j + 1;
      imwrite (J,croppedimg,'jpg' )
    end
end
David Buck
  • 3,752
  • 35
  • 31
  • 35

0 Answers0