灰度图片与彩色图像在处理上面存在一些差别,编程实现图像处理时往往需要将两者分开处理,那么如何将灰度图像和彩色图像分开呢?
这个问题我们在做logo识别过程中出现过,我将我的解决方法分享供大家参考。
分别灰度图像和彩色图像的条件是灰度图对应的矩阵是二维矩阵,彩色图是三维矩阵,所以区别灰度与彩色图片的程序设计思路如下:
1、读入图片image=imread('');
2、求image矩阵的维度;
3、若矩阵维数<3则是灰度图片,否则是彩色图片。
注:numel是MATLAB的一个函数,用于计算数组中满足指定条件的元素个数。若是一幅图像,则numel(A)将给出它的像素数;
size是matlab中的一个函数,用于返回矩阵的行列数,如A[1,2,2;2,3,4],size(A)=[2,3],表示矩阵是2行3列的。
image=imread('');
image_size=size(image);
dimension=numel(image_size);
if dimension==2
fprintf('%s','是一个灰度图像');
end
if dimension==3
fprintf('%s','是一个彩色图像');
end
fprintf('%d',dimension);