在图像序列中应用相同的滤镜,同时在Matlab

时间:2016-04-22 18:32:36

标签: matlab animation plot figure

我正在使用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个窗口!

1 个答案:

答案 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