MATLAB Answers

How to code image types?

7 views (last 30 days)
John Doe
John Doe on 5 Jul 2020 at 15:19
Answered: Image Analyst on 5 Jul 2020 at 16:38
Hello everyone.
How can I write the "if-else" loop so that MATLAB will identiy it is a Gray/Binary image?
Thanks in advance!

  0 Comments

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 5 Jul 2020 at 16:38
Try this:
grayImage = imread(fullFileName);
% Get the dimensions of the image.
% numberOfColorChannels should be = 1 for a gray scale image, and 3 for an RGB color image.
[rows, columns, numberOfColorChannels] = size(grayImage);
if numberOfColorChannels > 1
% It's not really gray scale like we expected - it's color.
% Use weighted sum of ALL channels to create a gray scale image.
% grayImage = rgb2gray(grayImage);
% ALTERNATE METHOD: Convert it to gray scale by taking only the green channel,
% which in a typical snapshot will be the least noisy channel.
grayImage = grayImage(:, :, 1); % Take red channel.
end
if max(grayImage(:)) == 1 && length(unique(grayImage(:))) == 2
% It's binary because it has only two values: 0 and 1
else
% It's grayscale
end
You can also use isa(grayImage, 'logical') or similar to identify what class it is.

  0 Comments

Sign in to comment.

More Answers (0)

Categories


Translated by