MATLAB Answers

How to code image types?

1 view (last 30 days)
Hello everyone.
How can I write the "if-else" loop so that MATLAB will identiy it is a Gray/Binary image?
Thanks in advance!

Accepted Answer

Image Analyst
Image Analyst on 5 Jul 2020
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.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!