2017-03-03 1 views
0

Ich habe mehrere Frames aus dem Browser ausgewählt. Es funktioniert perfekt als Cover-Datei für mein Projekt in Video Steganography.Wie speichere ich mehrere Bilder in Matlab?

Nach dem Einbetten von Text in Coverframes (mehrere Frames) möchte ich diese Frames als Stego-Bilder speichern, aber in meinem Fall speichert es nur das letzte Bild. Hier

ist der Code:

[fn, pn,fi] = uigetfile('*.jpg*','Select the Cover Image','Multiselect','on'); 

coln=size(fn); 

numberfile=coln; 

for i=1:numberfile 

    fn(i); 

    entirefile=fullfile(pn,fn{i}); 

    fid=fopen(entirefile); 

    fclose(fid); 
end 

I = imread([pn,fn{i}]); 

pix=I(:); 

J = reshape(pix,size(I)); 

%till here is working fine 

%this code below it problem when I save Stego image it save only last image 

[fn, pn] = uiputfile('*.png', 'Save Stego Image'); 

imwrite(J,[pn,'\',fn],'png'); 
+0

Versuchen Sie, Ihre Antwort umzuformulieren und neu zu formatieren, derzeit ist es sehr unklar, was Sie zu tun versuchen. – Wolfie

Antwort

0

Sie können den Speichervorgang in einer for Schleife gelten wie folgt:

[fn, pn,fi] = uigetfile('.jpg','Select the Cover Image','Multiselect','on'); 

coln = size(fn, 2); 

numberfile = coln; 

for i = 1:numberfile 
    fn(i); 

    entirefile = fullfile(pn, fn{i}); 

    fid = fopen(entirefile); 

    fclose(fid); 
end 

for i = 1:numberfile 
    I = imread([pn, fn{i}]); 

    pix = I(:); 

    J = reshape(pix, size(I)); 

    [out_fn, out_pn] = uiputfile('*.png', 'Save Stego Image'); 

    imwrite(J, [out_pn, '\', out_fn], 'png'); 
end 

Hinweis:
I ersetzt:

[fn, pn] = uiputfile('*.png', 'Save Stego Image');` 

mit:

[out_fn, out_pn] = uiputfile('*.png', 'Save Stego Image'); 

Sie wollen (Überschreiben nicht) halten fn und pn von der Lesebühne.

+0

Vielen Dank Sir es funktioniert perfekt ...... –

+0

Sir Ich möchte dieses Stego Bild in bestimmten Ordner speichern und Dateinamen automatisch speichern alle Rahmen mit anderer Nummer oder Name (zum Beispiel wie 1.png, 2.png, 3 .png ........ automatisch wird gespeichert, ohne manuell den Dateinamen einzugeben) –

+0

Sie können den Dateinamen wie folgt einstellen: 'file_name = [sum2str (i), '.png'];' – Rotem

Verwandte Themen