im2gray not working

30 views (last 30 days)
Preeti Sharma
Preeti Sharma on 8 Jun 2022
Commented: Preeti Sharma on 11 Jun 2022
I am trying to read my image and to make it as an array. I want to use im2gray command but it is not working. However the same code with same image is working in matlab online and other systems. I have image processing software insatlled in the system. Please help me with this.
  2 Comments
Preeti Sharma
Preeti Sharma on 11 Jun 2022
I am using version 2020a. I tried and mat2gray worked perfectly. im2gray for the same image worked in version 2020b.

Sign in to comment.

Answers (2)

DGM
DGM on 8 Jun 2022
Edited: DGM on 8 Jun 2022
im2gray() was introduced in R2020b. You're using R2020a.
Depending on what you need, you might be able to do it with rgb2gray() and some array size checks.
switch size(inpict,3)
case 3
outpict = rgb2gray(inpict);
case 1
outpict = inpict;
otherwise
% i'm assuming you don't want to support IA/RGBA images
error('a wild error message appears')
end
If you know all your images are RGB and aren't worried about running into ones that aren't, you can just use rgb2gray().
  4 Comments
DGM
DGM on 8 Jun 2022
Apologies if I interpreted your comment as a message to me and not the reader/OP.
Either way, that blog post from Steve is good.

Sign in to comment.


Image Analyst
Image Analyst on 8 Jun 2022
im2 = im1; % Initialize.
if ndims(im2) == 3
% If it's color, convert to gray scale.
im2 = rgb2gray(im2);
end
  2 Comments
Image Analyst
Image Analyst on 8 Jun 2022
@DGM correct. It assumes that the image im2 is a gray scale or RGB image. If im2 is a hyperspectral image or a volumetric image (like from CT MRI) then one should not use rgb2gray() or im2gray(). If you do an error will likely be thrown to alert you of that.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!