私はボトルキャップをチェックする機能を持っています。検出されたキャップがない場合は、それをフォルダにイメージとして書き込みます。私の問題は、別のイメージを渡すと、古いものが新しいもので上書きされるということです.nocap0、jpg、new one 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
私は少し今のコードを変更しました。毎回私はそれが今、新しいものを書き込み、異なるイメージを与えるが、それはそうのような以前の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
ファイルが既に存在します。その後、ファイル名が見つからなくなるまでファイル名をテストすることができます。 'filename = sprintf( 'TESTINGFOLDERS/NOCAP/nocap%d.jpg'、i)'のように 'i'をループします。 – Florian
こんにちはフロリアン、返信いただきありがとうございます、私はコードを編集したが、まだ正しく動作していません。私は何が間違っているの? – Powisss
コメントを投稿するには時間がかかりすぎますので、私は答えを投稿しました。 – Florian