How to save images as jpgs from .mat files struct
    1 visualizzazione (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hi ,I have 3064 .mat files dataset of brain tumors ,Prepareing data with lables for CNN.Each .mat file has struct 1x1 . Struct has following has these information: cjdata.image and cjdata.label.
And image is stored as cjdata.image.
I want to load all the .mat files:
1.mat ,2.mat ,3.mat ........................3064.mat
Want to apply these three opertions on each .mat file iteratively using a loop
1- accessing image from struct 
2.convert into gray scale 
3.save  grayscale image as as 1.jpg 2.jpg.....3065.jpg
% Reading folder that has 3064 .mat files
myFolder = 'C:\Users\join2\Desktop\FIGSHARE\figshare data progress\figshare jpg data\3064 images';
filePattern = fullfile(myFolder, '*.mat');
Pgraymap = dir(filePattern);
 for I = 1:length(Pgraymap)
   baseFileName = Pgraymap(I).name;
   str = fullfile(myFolder, baseFileName);
   fprintf(1, 'Now reading %s\n', str);
   img1 = imread(str); % new
%  load .mat
   d=load(filePattern);
% acessing  images from  .mat files. each .mat has image as strcture,that
% is "cjdata.image"
   d.cjdata.image;
% gray scale conversion
   d=im2uint8(d);
% save all d.cjdata.image as jpgs in myFolder .plz help i don't know how to save
end
0 Commenti
Risposta accettata
  Akira Agata
    
      
 il 19 Feb 2019
        To save matrix as an image, please use imwrite function.
In addition, if you save your data as an image file, I would recommend saving as .tiff or .png to keep data accuracy, because .jpg is a lossy compression method.
The following is a simple example.
inputFolder = 'C:\Users\join2\Desktop\FIGSHARE\figshare data progress\figshare jpg data\3064 images';
outputFolder = pwd; % Please change, if needed.
fileList = dir(fullfile(inputFolder,'*.mat'));
for kk = 1:numel(fileList)
  S = load(fullfile(fileList(kk).folder,fileList(kk).name));
  I = S.cjdata.image;
  I = mat2gray(I);
  fileName = replace(fileList(kk).name,'.mat','.tiff');
  imwrite(I,fullfile(outputFolder,fileName));
end
12 Commenti
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Convert Image Type in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





