Reading Multiple Images Using For Loop

T
Tinsley · Oct 26, 2020 · 2.3K views
Question
I am trying to use a for loop to read 4 images (of the format 1.jpg,2.jpg etc...) and then calculate the value and location of the minimum pixel of each image. Below is the code I have so far: RGB=cell(1,4); for i=1:4 RGB{i}=imread(sprintf('%d.jpg',i)); %Converting the image in to a RGB matrix gray{i}=rgb2gray(RGB{i}); %Converting the RGB image to grayscale gray_double{i}=double(gray{i}); %Changing from uint8 format to double Min_pixel{i}=min(gray_double{i}(:)); %Finding the minimum pixel value [row, column] = find(gray_double == Min_pixel,1);%Finding location of first minimum end; The code works up until Line 8 where it struggles to obtain the minimum pixel value. Is there an easier way to do this?
Expert Answer
Profile picture of Neeta Dsouza
Neeta Dsouza PhD Expert
Answered Aug 25, 2026
RGB=cell(4,1);
gray=cell(4,1);
Min_loc=cell(4,1);
for i=1:4
  RGB{i}=imread(sprintf('%d.jpg',i));
  gray{i}=rgb2gray(RGB{i});                         % Convert the RGB image to grayscale
  [Min_pixel{i},i_loc]=min(gray{i}(:));             % Find the minimum pixel value, location of first
  [r,c]=ind2sub(size(gray{i}),i_loc);               % Convert linear index to row, column
  Min_loc{i}=[r,c];                                 % return to cell array for image
end
There's no need to convert to double(); integer values will be the same as floats as as integers.
Just let min return the location for you using optional second output argument.
100% Run Guarantee 3-Hour Fast-Track Delivery

Need a Custom Version or Complete Simulation for This Problem?

Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.

Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!