У меня есть функция, которая проверяет крышку бутылки. Если флажок не обнаружен, он записывает его как изображение в папку. Моя проблема заключается в том, что если я передаю другое изображение, старый получает переопределенный новый, есть ли способ сделать новое изображение вместо перезаписывания старого, такого как nocap0, jpg, а затем новый nocap1.jpg и т. Д.?matlab imwrite новое изображение вместо того, чтобы переопределять его
Код:
function [ ] = CHECK_FOR_CAP(image)
%crop loaction of cap
imageCROP = imcrop(image,[130 0 100 50]);
%turn to BW
imageBW=im2bw(imageCROP);
%count black pixels
answer = sum(sum(imageBW==0));
%if <250 black, save it to folder NOCAP
if answer<250
imwrite(image, 'TESTINGFOLDERS/NOCAP/nocap.jpg', 'jpg');
disp('NO CAP DETECTED');
end
UPDATE
Я изменил код немного в настоящее время. Everytime я даю другое изображение теперь пишет новый, но он переписывает предыдущий Aswell, как так: http://imgur.com/a/KIuvg
Мой новый код:
function [ ] = CHECK_FOR_CAP(image)
folder = 'TESTINGFOLDERS/NOCAP';
filePattern = fullfile(folder, '/*.*');
ImageFiles = dir(filePattern);
%crop loaction of cap
imageCROP = imcrop(image,[130 0 100 50]);
%turn to BW
imageBW=im2bw(imageCROP);
%count black pixels
answer = sum(sum(imageBW==0));
%if <250 black, save it to folder NOCAP
if answer<250
a = length(ImageFiles)-1;
for j = 1:a
baseFileName = [num2str(j),'.jpg'];
filename = fullfile(folder,baseFileName);
if exist(filename,'file')
imwrite(image,filename);
end
imwrite(image, fullfile(filename));
end
disp('NO CAP DETECTED');
end
Вы можете использовать 'существует (имя файла,«файл»)', чтобы проверить, является ли файл уже существует. Затем вы можете проверить имена файлов, пока не найдете тот, который не был взят. Как цикл через 'i' для' filename = sprintf ('TESTINGFOLDERS/NOCAP/nocap% d.jpg', i) '. – Florian
Привет, Флориан, спасибо за ответ, я отредактировал код, но все еще не работает правильно. Что я там делаю неправильно? – Powisss
Слишком долго, чтобы добавить комментарий, я отправил ответ. – Florian