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?
Similar to what @Milo suggested, but with a different function. Use
ndims:returns the number of dimensions in the image
pic. The number of dimensions in an array is always greater than or equal to 2, and in an RGB image it’ll be>2. Trailing singleton dimensions are ignored (A singleton dimension is any dimension for whichsize(A,dim) = 1.)