How to run program once for every new image stored in folder?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Tan Jun Hao
am 27 Jul. 2015
Kommentiert: Tan Jun Hao
am 27 Jul. 2015
I have a program to process all the JPEG photos in a folder. But what I want to do is to run the program once every time a new image is stored in the folder. Any ideas to do so?
My current code is something like that:
srcFiles = dir('C:\FTP\testing2\*.jpg');
for i = 1 : length(srcFiles)
filename = strcat('C:\FTP\testing2\', srcFiles(i).name);
I = imread(filename);
...........rest of my code..........
end
3 Kommentare
Image Analyst
am 27 Jul. 2015
How are you defining what's "new"? New since last time you ran the program? If so, then are you saving, somewhere, the date and time of the last time you checked the folder or ran your script?
Akzeptierte Antwort
Weitere Antworten (1)
Azzi Abdelmalek
am 27 Jul. 2015
folder='C:\FTP\testing2'
type='*.jpg'
srcFiles = dir(fullfile(folder,type));
for ii= 1 : length(srcFiles)
filename = fullfile(folder, srcFiles(ii).name);
I = imread(filename);
%Your code
%Store the result in a cell array, for example
Y{k}=I
end
What is the problem with your code
3 Kommentare
Azzi Abdelmalek
am 27 Jul. 2015
That depends on how many files are contained in your folder. Check the number of files by typing
folder='C:\FTP\testing2'
type='*.jpg'
srcFiles = dir(fullfile(folder,type))
size(srcFiles )
Azzi Abdelmalek
am 27 Jul. 2015
folder='C:\FTP\testing2'
type='*.jpg'
for k=:100
srcFiles = dir(fullfile(folder,type));
if ~isempty(srcFiles)
dat=datenum({srcFiles.date})
[~,ii]=min(dat)
nam=srcFiles(ii).name
filename = fullfile(folder, nam);
I = imread(filename);
%Your code
wait(2)
movefile(filename,fullfile(new_folder,nam)
end
Siehe auch
Kategorien
Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!