Обнаружение лиц, обрезка и сохранение их в другом файле - PullRequest
0 голосов
/ 29 марта 2020

У меня есть данные изображения (для 40 человек), и я пытаюсь определить лицо на каждом изображении, обрезать его и сохранить в другом файле. Я использую MATLAB для этого, но он не работает.

ОШИБКА: невозможно открыть файл "C: \ Users \ mstfy \ Desktop \ Matlab \ alex \ newdata \ cropped \" для записи. Возможно, у вас нет разрешения на запись.

Я думаю, что-то не так в моем for l oop.

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
...