2016-04-30 9 views
0

Ich habe einen Ordner, der aus 10 Bildern besteht.Wie kann ich einen Satz geänderter Bilder in einem neuen Ordner in MATLAB speichern?

Ich versuche, einen Gauss-Filter auf jeden von ihnen anzuwenden. Ich lese Bilder aus einem Ordner namens dd und dann möchte ich die geänderten Bilder in newfolder speichern. Wenn ich jedoch das Bild anschaue, ist es leer.

Wie kann ich das richtig machen, 10 Bilder lesen, filtern, geänderte 10 Bilder im neuen Ordner speichern. Hier

ist der Code, den ich bisher haben:

for img = 1:10 
    a = imread(['\dd\',int2str(img),'.pgm']); 

    G = fspecial('gaussian',[3 3],2); 
    Ig = imfilter(a,G,'same'); 

    imshow(Ig); 
    imwrite(Ig, 'Ig.pgm '); % does not work !! 
    save ([ path,'\newfolder\', 'new.pgm'],'Ig');% it save empty image !!! 
end 

Antwort

2

save ist nicht für Bilder speichern. Stattdessen sollten Sie imwrite dafür verwenden. Sie möchten auch den vollständigen Pfad zu imwrite angeben, und hier verwenden wir mat2gray, um sicherzustellen, dass Ihre Daten den gesamten dynamischen Bereich des Bildtyps abdecken. Sie sollten auch sicher sein, dass jedes Ausgabebild einen eindeutigen Namen hat, damit sie sich nicht gegenseitig überschreiben.

output_filename = fullfile(path, 'newfolder', sprintf('%d_new.pgm', img)); 
imwrite(mat2gray(Ig), output_filename, 'pgm'); 

Als Randbemerkung, sollten Sie fullfile benutzen, um Ihre Ordnerpfaden über Computer und Betriebssysteme zuverlässig zu konstruieren.

+0

Suever danke, es funktioniert jetzt ... Ich verbrachte zwei Tage, um es zu lieben –

Verwandte Themen