I'm writing a function which can take an image and perform specific smoothing tasks on.
At the very beginning of my function I convert the image to a grayscale image using pic = rgb2gray(pic);
I'm hoping to allow the function to take any image (even if its already grayscale). In Matlab, if I pass it a grayscale image it currently errors because it cannot convert it (which is obvious).
Is there a built in function or an easy way to test an image and determine its colour format?
I read on google something about isRGB and isGrayscale functions but they have been removed from later versions of Matlab...
I'm thinking something like this would be cool if it had a built in function.
if (pic == RGB)
do
.
.
.
elseif (pic == GrayScale)
do
.
.
.
else
do
.
.
.
If not, maybe I could write a function that takes a pixel x,y
and tests its value?
if (p(x,y) == ....
or something? I'm unsure... Thoughts?
Color images have 3 channels (R, G, B), so:
size(pic, 3) = 3
For grayscale:
size(pic, 3) = 1