【问题标题】:How to save multiple images in .mat file In MATLAB environment如何在 .mat 文件中保存多个图像在 MATLAB 环境中
【发布时间】:2014-03-22 12:20:38
【问题描述】:

以下是我尝试过的代码,但它从文件夹中读取图像,但是当我在 试图将所有图像存储到 mat 文件中,但它将最后一个数组存储在 mat 文件中

myFolder = 'C:\Users\protocol\Desktop\Finger-Print';
if ~isdir(myFolder)
  errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
  uiwait(warndlg(errorMessage));
  return;
end
filePattern = fullfile(myFolder, '*.jpg');
jpegFiles = dir(filePattern);
for k = 1:length(jpegFiles)
  baseFileName = jpegFiles(k).name;
  fullFileName = fullfile(myFolder, baseFileName);
  fprintf(1, 'Now reading %s\n', fullFileName);
  imageArray = imread(fullFileName);

  save db2.mat imageArray; here it save the last image array to db2.mat file

  imshow(imageArray);  % Display image.
  drawnow; % Force display to update immediately.
end

但我想将多个图像存储在一个 mat 文件中,以便稍后加载此文件 并访问图片

【问题讨论】:

  • 每个图像都需要不同的变量名,并且在循环中保存时需要附加-append。我会推荐多个具有相同变量名的文件。
  • 感谢回复我已经解决了我的问题下面是发布的代码

标签: matlab image-processing


【解决方案1】:

您可以将图像存储在一个元胞数组中,然后将整个数组保存到一个 mat 文件中。

clear all; clc; addpath(genpath(pwd));
myFolder = 'C:\Users\protocol\Desktop\Finger-Print\Matlab\Simple_FingerPrint_Matching\FVC2002\DB2_B';
if ~isdir(myFolder)
  errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
  uiwait(warndlg(errorMessage));
  return;
end
filePattern = fullfile(myFolder, '*.tif');
jpegFiles = dir(filePattern);
 result = cell(1,100);
for k = 1:length(jpegFiles)
  baseFileName = jpegFiles(k).name;
  fullFileName = fullfile(myFolder, baseFileName);
  fprintf(1, 'Now reading %s\n', fullFileName);
  imageArray= imread(fullFileName);
  result{k} = imageArray;
end
save db2.mat result;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-01
    • 2018-05-25
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多