空间色彩:RGB空间色彩、CMY空间色彩、HSI空间色彩
颜色模型的分类:RGB模型、HSV模型、YCbCr模型、NTSC模型
搞清楚这几种彩色模型的原理和转换
图像在计算机上的显示类型:二值图像、灰度图像、彩色图像(伪彩色图像和真彩色图像)
matlab中的四种基本图像类型:索引图像、灰度图像、RGB图像、二值图像
搞清楚这几种图像类型的原理和转换
0、图像的读入与显示
函数:
A=imread('1.jpg');
imshow(A)%显示图片
1、彩色图片转换为灰度图片
函数:rgb2gray()
我们通过计算机显示屏看到的图像,都是由RBG三通道图片组合而成(可以仔细看显示屏,都会有红蓝绿三种小LED组合),这就是三基色,每个颜色都有255个取值,共有255*255*255中庞大的颜色群。而灰度图像,只有255个灰度级,通过公式就可以把RBG的图像转换成灰度图了
GRAY=0.2989*R+0.5870*G+0.1140*B
matlab为我们提供rbg2gray这个函数来实现他们之间的转化
例子:
实验结果:
如果图片本来是灰度图像,那又是什么结果呢
显然没有任何变化
小结:
把RBG彩色图像变成灰度图像,能够节省下很多的数据量,方便下一步的处理。变成灰度图片后,再转换成二值图像,就更加方便了。
2、图像的二值化处理
二值化是对图像纯粹的黑白处理,也就是像素上点的灰度值全部是0或255,减少图像的数据量,突出目标的轮廓特征。
图像上的点是黑是白,就需要一个中间值来判断,这个值就是阈值,用函数lev=graythresh(imdata),然后就是二值化了 bwimg = im2bw( imdata, lev)。
例子:
运行结果:
小结:
1、二值化的这个阈值的选择很重要,看,这个图片并不能很好的反应出照片的特征,这能显示大体的轮廓,这个的适用范围很有限
2、彩色图像是m*n^255*255*255(RBG模型),灰度图像是m*n^255,二值化的图像是m*n^2,需要处理的数据量逐渐减少
3、图片转化为负片
函数:imadjust()
首先,知道一下负片的概念,就是以前胶卷的底片,它的颜色和正常照片的正好相反,比如黑色就变成白色,浅黑就变成浅白色,红色变成青色等等
然后,了解下背后的原理,如灰度图片,是由很多像素组成,每个像素都是在0~255之间的一个值,0是黑色,255就是白色,中间的就是灰色地带,0的负片就变成了255,(纯黑变纯白),黑白图片看起来很容易解释,但彩色图片就很少见到它的负片了,一般是RGB图像,RGB三个值都取反一下,就变成我们不知道的色彩,有些陌生,今天拿几种颜色实验一下:
最后就用实例,看图解释
A=imread('star.jpg');
A1=imadjust(A,[0,1],[1,0]);
figure,
subplot(211);imshow(A);title('原图');
subplot(212);imshow(A1) ;title('负片');
实验结果:
小结:
1、以前好看的图片变成负片以后,开始一看,真不知道是什么鬼,吓死人,但了解原理后知道,这只是对照片色彩的相反颜色,看来颜色的效果不容忽视
2、另外就是imadjust(A,[0,1],[1,0]) 这里了,这里可以自己设置数字,而[0,1]和[1,0]是系统默认值,就是原来的54变成了(255-54)了
总结:
1、收获
今天的实验,了解matlab中彩色图像,灰度图像和二值图像,逐级的转化,和他们之间的特征:
彩色图像到灰度图像—— GRAY=0.2989*R+0.5870*G+0.1140*B
灰度图像到二值图像—— 找到lev
另外,通过对负片的了解,知道255这个值得变化对图片产生很大的影响
2、遗憾
对RBG模型,HSV模型缺乏感性的认识,要对它做实验了解
对索引图像缺乏了解