什么是RGB图像?
通常,一幅RGB彩色图像的三个图像称为红、绿或蓝分量图像,分量图像的数据类决定了它们的取值范围。一幅RGB图像是一个M*N*3的彩色像素数组,其中每一个彩色像素是一个三值组,这三个值分别对应一个特定空间位置处该RGB图像的红、绿和蓝分量。若一幅RGB图像的数据类是double,则它的取值范围就是[0,1],类似地,uint8类或uint16类RGB图像的取值范围分别是[0,255]或[0,65535]。用来代表这些分量图像像素值的比特数决定了一幅RGB图像的比特深度。例如,若每个分量图像都是8比特的图像,则对应的RGB图像的深度就是24比特。一般来讲,所有分量图像的比特数都是相同的。在这种情况下,一幅RGB图像可能有的色彩数就是(2b)3,其中b是每个分量图像的比特数。对于8比特的例子,颜色数即为16777216。
什么是灰度图像?
灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑白两种颜色,灰度图像在黑色与白色之间还有许多级的颜色深度。一幅完整的图像,是由红色、绿色、蓝色三个通道组成的。红色、绿色、蓝色三个通道的缩览图都是以灰度显示的。用不同的灰度色阶来表示“ 红,绿,蓝”在图像中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255。
平均值法:Gray=(R+G+B)/3;
什么是索引图像?
索引图像是一种把像素值直接作为RGB调色板下标的图像。索引图像可把像素值“直接映射”为调色板数值。一幅索引图包含一个数据矩阵data和一个调色板矩阵map,数据矩阵可以是uint8,uint16或双精度类型的,而调色板矩阵则总是一个m×3的双精度矩阵。调色板通常与索引图像存储在一起,装载图像时,调色板将和图像一同自动装载。索引模式和灰度模式比较类似,它的每个象素点也可以有256种颜色容量,但它可以负载彩色。灰度模式的图像最多只能有256种颜色。当图像转换成索引模式时,系统会自动根据图像上的颜色归纳出能代表大多数的256种颜色,就象一张颜色表,然后用这256种来代替整个图像上所有的颜色信息。
什么是二值图像?
二值图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单色图像表示二值图像。二值图像是指在图像中,灰度等级只有两种,也就是说,图像中的任何像素点的灰度值均为0或者255,分别代表黑色和白色。
代码实现部分:
1、RGB图像->灰度图像
close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc; %清屏
X=imread('football.jpg'); %读取文件格式为.jpg,文件名为football的RGB图像的信息
%%% D:\Program Files\Polyspace\R2019b\toolbox\images\imdata
I=rgb2gray(X); %将RGB图像转换为灰度图像
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
I2=histeq(I); %提高对比度,产生较好的对比效果
subplot(221),imshow(X); %显示原RGB图像
subplot(222),imshow(I); %显示转换后灰度图像
subplot(223),imshow(I,[60,190]); %设置灰度上下为[60,190]显示该灰度图像
subplot(224),imshow(I2);
figure,
subplot(121),imhist(I); %在新图中显示图像I的直方图
subplot(122),imhist(I2); %均衡图像的灰度分布情况
2、RGB图像->索引图像
close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc; %清屏
RGB = imread('football.jpg'); %读取图像信息
[X1,map1]=rgb2ind(RGB,64); %将RGB图像转换成索引图像,颜色种数N是64种
[X2,map2]=rgb2ind(RGB,0.2); %将RGB图像转换成索引图像,颜色种数N是216种
map3= colorcube(128); %创建一个指定颜色数目的RGB颜色映射表
X3=rgb2ind(RGB,map3);
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure;
subplot(131),imshow(X1,map1); %显示用最小方差法转换后索引图像
subplot(132),imshow(X2,map2); %显示用均匀量化法转换后索引图像
subplot(133),imshow(X3,map3); %显示用颜色近似法转换后索引图像
3、灰度图像->索引图像
close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc %清屏
I=imread('cameraman.tif') %读取灰度图像信息
[X,map]=gray2ind(I,8); %实现灰度图像向索引图像的转换,N取8
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure,imshow(I); %显示原灰度图像
figure, imshow(X, map); %显示N=8转换后索引图像
4、索引图像->灰度图像
close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc; %清屏
[X,map]=imread('forest.tif');%像信息
I = ind2gray(X,map); %再将索引图像转换为灰度图像
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure,imshow(X,map); %将索引图像显示
figure,imshow(I); %将灰度图像显示
5、索引图象->RGB图像
close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc; %清屏
[X,map]=imread('kids.tif'); %读取图像信息
RGB=ind2rgb(X,map); %将索引图像转换为真彩色图像
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure, imshow(X,map); %显示原图像
figure,imshow(RGB); %显示真彩色图像
6、灰度图像->二值图像
close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc; %清屏
I=imread('rice.png'); %读取图像信息
BW1=im2bw(I,0.4); %将灰度图像转换为二值图像,level值为0.4
BW2=im2bw(I,0.6); %将灰度图像转换为二值图像,level值为0.6
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure;
subplot(131),imshow(I); %显示level=0.4转换后的二值图像
subplot(132),imshow(BW1); %显示level=0.5转换后的二值图像
subplot(133),imshow(BW2); %显示level=0.6转换后的二值图像
7、RGB图像->二值图像
close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc; %清屏
I=imread('pears.png'); %读取图像信息
BW=im2bw(I,0.5); %将RGB图像转换为二值图像
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure,
subplot(121),imshow(I); %显示原图像
subplot(122),imshow(BW); %显示转换后二值图像