2017-03-03 78 views
0

我从浏览器中选择了多个框架。它在视频隐写术中完美地作为我的项目的封面文件。如何在Matlab中保存多个图像?

将文本嵌入到封面帧(多帧)后,我想将这些帧保存为隐藏图像,但在我的情况下,它只保存最后一张图像。

下面是代码:

[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

尝试重新设置和重新格式化您的答案,目前它很不清楚你想要做什么。 – Wolfie

回答

0

你可以申请在for循环保存操作如下:

[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 

注:
我代替:

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

有了:

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

你要保持(未覆盖)fnpn从阅读阶段。

+0

谢谢先生,它工作完美...... –

+0

主席先生,我想保存此特定文件夹中的Stego图像并自动保存所有具有不同编号或名称的帧(例如1.png,2.png,3 .png ........会自动保存,不用手动输入文件名) –

+0

你可以设置文件名如下:'file_name = [sum2str(i),'.png'];' – Rotem