2016-04-22 5 views
0

Ich verwende MATLAB 2013a.Wenden Sie den gleichen Filter in einer Sequenz von Bildern an, während Sie in der gleichen Abbildung in Matlab animiert werden

Ich habe einen Ordner mit 1151 Bildern, die ich in der gleichen Abbildung (Fenster) animieren möchte.

Ich möchte mit nur einem Bild des imabsdiff jedes Bildes finden (vielleicht dieses als Hintergrundbild), und ich möchte sie es animiert und in derselben Figur angezeigt werden, wie wenn es ein Video war .

fand ich diesen Code:

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 

, die jedes Bild von meinem Ordner gelesen hat, aber es schafft eine neue Figur (Fenster) für jedes Bild, aber ich will nicht, 1151 Fenster!

Antwort

1

Sie möchten wahrscheinlich ein einziges imshow Bildobjekt erstellen und dann die CData dieses Objekts jedes Mal durch die Schleife aktualisieren.

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 
+0

Und übrigens, ich benutze MATLAB 2013a. – dawn

+0

Es gibt diesen Fehler: Fehler bei der Verwendung von handle.handle/set Ungültiges oder gelöschtes Objekt. Fehler in VIDEOSEC (Zeile 14) festgelegt (er, 'CData', im); – dawn

+0

@dawn Zeigen Sie etwas anderes als das Bild an? – Suever