2014-02-21 2 views
2

Ниже приведен мой код, который я пробовал, но он читает изображения из папки, но когда я , пытаясь сохранить все изображения в файл мата, но он хранит последние массив в коврике файлКак сохранить несколько изображений в файле .mat В среде MATLAB

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 

но, но я хочу, чтобы хранить несколько изображений в файле мат, так что я могу загрузить этот файл позже и доступа к изображениям

+0

Для каждого изображения вам понадобятся разные имена переменных, и вам нужно будет добавить «-append» при сохранении в цикле. Я бы рекомендовал несколько файлов с тем же именем переменной. – chappjc

+0

спасибо за ответ, я решил свою проблему ниже, это код, размещенный – user3282475

ответ

4

Вы можете хранить изображения в массиве ячеек , а затем сохраните весь массив в файл мата.

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; 
+0

Может ли какая-то часть объяснить для цикла для вышеуказанного кода –

Смежные вопросы