How do I understand the following code?

1 vue (au cours des 30 derniers jours)
Vinay Chawla
Vinay Chawla le 19 Oct 2020
Commenté : Vinay Chawla le 16 Déc 2020
Hello,
I found this code online and I am trying to understand it for my study. I am unable to understand the following lines of code and I was wondering if someone will assist me in understanding. Specifically, I don't understand the part "%set the image size to suitable value" where it is giving scale and resizing the image and "%% image Resize"
%% Uploading input image
[filename,pathname] = uigetfile('*.*','Choose the input image');
im = imread([pathname,filename]);
% set the image size to suitable value
scale = 600/(max(size(im(:,:,1))));
im = imresize(im,scale*size(im(:,:,1)));
% % Image resize
[m,n,~] = size(im);
I would appreciate the assistance.
Thank you in advance.

Réponse acceptée

Adam Danz
Adam Danz le 19 Oct 2020
Modifié(e) : Adam Danz le 19 Oct 2020
The best way to understand it is by using the help or doc commands to look up each function name. At the top of each page you'll see a brief description of the function, inputs and outputs.
Here's a very general description of each line
% CHOOSE A FILE
[filename,pathname] = uigetfile('*.*','Choose the input image');
% READ THE IMAGE FILE IN AS IMAGE DATA
im = imread([pathname,filename]);
% DETERMINE THE SCALE OF THE IMAGE DATA
% (max(size(...)) returns the images maximum dimension
% THE IMAGE DATA (im) IS AN nXmX3 ARRAY OF R-G-B- COLOR VALUES
% BUT THIS LINE ONLY REFERENCES THE "R" VALUES
scale = 600/(max(size(im(:,:,1))));
% SCALE THE IMAGE
im = imresize(im,scale*size(im(:,:,1)));
% GET THE NEW IMAGE SIZE
[m,n,~] = size(im);
You can use imshow(im) to see the image.
  6 commentaires
Adam Danz
Adam Danz le 16 Déc 2020
Modifié(e) : Adam Danz le 16 Déc 2020
> It is possible that that is the reason why only R value is considered?
Possibly. I advise reading about the array returned by imread so you can you can understand what im is
> is it possible that an image will have all the same RGB values
Yes, when all 3 RGB values are the same, it's a shade of gray/black.white
rgb = repmat(0:.1:1, 3,1)'
rgb = 11×3
0 0 0 0.1000 0.1000 0.1000 0.2000 0.2000 0.2000 0.3000 0.3000 0.3000 0.4000 0.4000 0.4000 0.5000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7000 0.7000 0.7000 0.8000 0.8000 0.8000 0.9000 0.9000 0.9000
scatter(1:11,.5.*ones(1,11),250,rgb,'filled','MarkerEdgeColor','k')
Vinay Chawla
Vinay Chawla le 16 Déc 2020
Thank you.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Image Processing and Computer Vision dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by