How to normalize/Rescale Image Datastore
    9 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    hammad younas
 am 26 Nov. 2021
  
    
    
    
    
    Kommentiert: Image Analyst
      
      
 am 27 Nov. 2021
            Hi, I want to Normilze/Rescale the Dataset between 0 and 1
In Keras the Following Function is used to Normalize the Data between 0 and 1
train_image_generator = ImageDataGenerator(
    rescale=1./255,)
 %% in MATLAB i am using ImageDatastore 
 imageFolder = fullfile(downloadFolder,'Classdata');
 imds = imageDatastore(imageFolder, 'LabelSource', 'foldernames', 'IncludeSubfolders',true);
How can i Normalize the ImageDatastore in MATLAB?
2 Kommentare
  Image Analyst
      
      
 am 26 Nov. 2021
				Do you mean you just want to read in images one at a time and rescale them to a range of 0-1 with mat2gray() or rescale()?
Akzeptierte Antwort
  Image Analyst
      
      
 am 26 Nov. 2021
        @hammad younas an imageDatastore is essentially just a structure that is a listing of file names.  It is not image data itself.  So you'd loop over the images and call rescale(thisImage, 0, 1) on each image, and then do something with it, like call image processing functions or something.
% Demo by Image Analyst
clc;    % Clear the command window.
close all;  % Close all figures (except those of imtool.)
clear;  % Erase all existing variables. Or clearvars if you want.
workspace;  % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 20;
markerSize = 40;
folder = pwd;
imds = imageDatastore(folder, "FileExtensions", [".jpg",".tif", ".png"])
numImages = length(imds.Files)
%numImages = 4; % For debugging.
plotRows = ceil(sqrt(numImages))
for k = 1 : numImages %length(imds.Files)
    thisFile = imds.Files{k}
    [f, baseFileName, ext] = fileparts(thisFile);
    % Read in the image.
    thisImage = imread(thisFile);
    % Scale the min to 0 and the max to 1.
    thisImage = rescale(thisImage, 0, 1);
    % Now do something with the rescaled image.
    subplot(plotRows, plotRows, k);
    imshow(thisImage);
    title(baseFileName, 'FontSize', fontSize);
    text(10, 10, baseFileName, 'Color', 'r', ...
        'BackgroundColor', 'y', 'FontSize', fontSize, 'VerticalAlignment', 'top')
end
g = gcf;
g.WindowState = 'maximized'
9 Kommentare
  Image Analyst
      
      
 am 27 Nov. 2021
				% Read in the image.
thisImage = imread(thisFile);
% Resize to 150,150.
thisImage = imresize(thisImage, [150, 150]);
% Scale the max to 1, and everything else linearly scaled.
thisImage = thisImage / 255;
% Now do something with the resized and rescaled image.
Of course you could string that all together into one really long line of code (like your other code) if you want, though it might make it harder to read and follow.
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Deep Learning Toolbox finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

