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?
Neeta Dsouza answered .
2025-11-20
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