我正在使用MATLAB 2013a。
我有一个包含1151张图像的文件夹,我想在同一图(窗口)中设置动画。
我想找到每个图像的 imabsdiff ,只有一个图像(也许这个作为背景图像),我希望它能够显示动画并在同一个图中,就好像这是一段视频。
我找到了这段代码:
srcFiles = dir('C:\Users\coil-20-proc\*.jpeg'); % the folder in which ur images exists
for i = 1 : length(srcFiles)
filename = strcat('C:\Users\coil-20-proc\',srcFiles(i).name);
I = imread(filename);
figure, imshow(I);
end
从我的文件夹中读取每个图像,但它为每个图像创建一个新的图形(窗口),但我不想要1151个窗口!
答案 0 :(得分:1)
您可能想要创建一个imshow
图像对象,然后每次循环更新此对象的CData
。
directory = 'C:\Users\coil-20-proc';
srcFiles = dir(fullfile(directory, '*.jpeg');
srcFiles = cellfun(@(x)fullfile(directory, x), {srcFiles.name}, 'uni', 0);
hfig = figure();
him = imshow(NaN);
for k = 1:numel(srcFiles)
im = imread(srcFiles{k});
%// Perform your operation here
set(him, 'CData', im);
axis tight;
drawnow;
end