【问题标题】:How to save multiple images in Matlab?Matlab如何保存多张图片?
【发布时间】:2017-03-07 04:16:37
【问题描述】:

我从浏览器中选择了多个帧。它可以完美地作为我的视频隐写术项目的封面文件。

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

代码如下:

[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');

【问题讨论】:

  • 尝试改写和重新格式化您的答案,目前还不清楚您要做什么。

标签: matlab


【解决方案1】:

您可以在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'); 

您希望在阅读阶段保留(而不是覆盖)fn 和 pn。

【讨论】:

  • 先生,我想将此 Stego 图像保存在特定文件夹中,并以不同的编号或名称自动保存所有帧的文件名(例如 1.png、2.png、3.png .... ....自动保存,无需手动输入文件名)
  • 可以设置文件名如下:file_name = [sum2str(i), '.png'];
  • 先生,这不是我的问题。假设我选择了像 10 帧这样的封面文件,然后我用文本嵌入了这个帧,嵌入后我希望这 10 个帧保存为一个文件夹中的 stego 图像。 Sa 表示每一帧我都必须分配一个唯一的文件名以避免冲突。现在我的问题来了,我希望所有这 10 帧自动保存在一个文件夹中,文件名将自动分配所有 10 帧,其唯一编号为 1.png,2.png......10.png。
  • 1. 从循环中删除 uiputfile。 2. 在循环之前添加代码folder_name = uigetdir(选择文件夹)。 3. 在循环内添加file_name = [sum2str(i), '.png']; 并使用imwrite(J, [folder_name, '\', file_name], 'png');
猜你喜欢
  • 2015-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多