How to run program once for every new image stored in folder?
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Image Analyst
2015-7-27
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?
采纳的回答
更多回答(1 个)
Azzi Abdelmalek
2015-7-27
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 个评论
Azzi Abdelmalek
2015-7-27
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
2015-7-27
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!