输出结果为灰度图像:
clear all;clc;
I001=imread('gou.png');
% flag001=isrgb(I001);%判断是否是RGB图像老版本的matlab可以使用
J001=rgb2gray(I001);%转换为灰度图
subplot(121);imshow(I001);title('彩色图像');
subplot(122);imshow(J001);title('灰度图像');
K001R(:,:,:,1)=I001;
K001R(:,:,:,2)=I001;
% flagg001=isrgb(k001R)%判断是否是RGB图像老版本的matlab可以使用
image = I001;
image_size=size(image);
% dimension=numel(image_size);
dimension=numel(size(J001));
if dimension==2
fprintf('%s','灰度图像');
end
if dimension==3
fprintf('%s','彩色图像');
end
fprintf('%d',dimension);
输出结果为彩色图像:
clear all;clc;
I001=imread('gou.png');
% flag001=isrgb(I001);%判断是否是RGB图像老版本的matlab可以使用
J001=rgb2gray(I001);%转换为灰度图
subplot(121);imshow(I001);title('彩色图像');
subplot(122);imshow(J001);title('灰度图像');
K001R(:,:,:,1)=I001;
K001R(:,:,:,2)=I001;
% flagg001=isrgb(k001R)%判断是否是RGB图像老版本的matlab可以使用
image = I001;
image_size=size(image);
dimension=numel(image_size);
%dimension=numel(size(J001));
if dimension==2
fprintf('%s','灰度图像');
end
if dimension==3
fprintf('%s','彩色图像');
end
fprintf('%d',dimension);
figure展示的图片效果如图:
基本原理是,查看位深度,如果是RGB图,位深度是24;如果是灰度和索引图,位深度是8;灰度是白灰黑表示的图,索引图有可能是彩色的,但也是8位深。
当然还有关于读取图片的维度矩阵,RGB构成的三维矩阵控制,而灰度图和二值图等等只是二维的矩阵。具体的可以参见工作区的名称以及数值代表的含义。
如下的是一种情况: