数字图像的基本变换程序设计 颜色变换.docx
- 文档编号:25759983
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:17
- 大小:1.44MB
数字图像的基本变换程序设计 颜色变换.docx
《数字图像的基本变换程序设计 颜色变换.docx》由会员分享,可在线阅读,更多相关《数字图像的基本变换程序设计 颜色变换.docx(17页珍藏版)》请在冰豆网上搜索。
数字图像的基本变换程序设计颜色变换
摘要
数字图像处理是指利用计算机对数字图像进行的处理,它是一门很有价值的学科,在科学技术不断发展的今天它的技术已趋于成熟。
同时图像之间的处理,在实际应用中也显的越来越重要。
本次课程设计的主要任务是完成数字图像处理中关于彩色图像灰度化的仿真,观察仿真结果,并进行结果分析。
熟悉并掌握MATLAB软件的使用方法,通过加权平均法、平均值法和最大值法这三种方法,实现了彩色图像的灰度化处理,并对它们进行了对比分析。
最后,完成了彩色图像灰度化的仿真。
关键词:
彩色图像;MATLAB;灰度化
目录
1设计目的与要求1
1.1设计目的1
1.2设计要求1
2设计方案2
3相关知识3
3.1设计平台3
3.2发展前景3
4设计内容5
5源代码及分析6
5.1源代码6
5.2代码分析7
6功能仿真图及分析8
结束语14
参考文献15
1设计目的与要求
1.1设计目的
(1)熟悉和掌握MATLAB程序设计方法。
(2)学习和熟悉MATLAB图像处理工具箱。
(3)学会利用MATLAB工具箱对图像进行处理和分析。
(4)了解图像灰度化的原理。
(5)通过MATLAB仿真软件,实现彩色图像的灰度化处理。
(6)在加深对数字图像处理课本知识理解的基础上,学会运用已学的知识设计彩色图像灰度化的处理方法并对结果进行分析。
1.2设计要求
利用MATLAB进行编程及仿真,仿真内容为数字图像的颜色变换程序设计。
要求学习并熟悉MATLAB编程环境的一般操作和运用。
拟利用所学数字图象处理技术知识,通过三种不同的方法对数字图像进行颜色变换,并对这三种方法得到的图像进行分析和比较。
2设计方案
将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。
彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。
而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。
灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。
在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。
因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。
图像的灰度化处理,一般有以下三种设计方案:
1、加权平均法
根据重要性及其它指标,将三个分量以不同的权值进行加权平均。
由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,对RGB三分量进行加权平均能得到较合理的灰度图像。
2、平均值法
求出每个像素点的R、G、B三个分量的平均值,然后将彩色图像中的这个平均值赋予给这个像素的三个分量。
3、最大值法
将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。
本课程设计分别采用了以上三种设计方案,即加权平均法、平均值法和最大值法。
在MATLAB中,通过编程实现了彩色图像的灰度化处理。
3相关知识
3.1设计平台
本次设计采用的平台是MATLAB7.1。
MATLAB编程语言被业界称为第四代计算机语言,它允许按照数学推导的习惯编写程序。
MATLAB7.1的工作环境包括当前工作窗口、命令历史记录窗口、命令控制窗口、图形处理窗口、当前路径选择菜单、程序编辑器、变量查看器、模型编辑器、GUI编辑器以及丰富的函数库和MATLAB附带的大量M文件。
MATLAB是由美国MathWorks公司生产的一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种计算和数据处理的、可视化的、强大的计算工具。
它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂计算的领域得到了广泛应用。
MATLAB作为一种科学计算的高级语言之所以受欢迎,就是因为它有丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担,被称为第四代编程语言。
在MATLAB设计环境中,图像处理工具箱提供一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。
可用其对有噪声图像或退化图像进行去噪声或还原、增强图像以获得更高清晰度、提取特征、分析形状和纹理以及对两个图像进行匹配。
工具箱中大部分函数均以开放式MATLAB语言编写。
这意味着可以检查算法、修改源代码和创建自定义函数。
图像处理工具箱在生物测定学、遥感、监控、基因表达、显微镜技术、半导体测试、图像传感器设计、颜色科学及材料科学等领域为工程师和科学家提供支持。
它也促进了图像处理技术的教学。
3.2发展前景
在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。
这类图像通常显示为从最暗的黑色到最亮的白色的灰度,尽管理论上这个采样可以是任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。
灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。
但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。
在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像。
彩色图像的灰度化技术在现代科技中应用越来越广泛,例如人脸目标的检测与匹配以及运动物体目标的监测等等,在系统预处理阶段,都要把采集来的彩色图像进行灰度化处理,这样既可以提高后续算法速度,而且可以提高系统综合应用实效,达到更为理想的要求。
因此研究图像灰度化技术具有重要意义。
4设计内容
本设计采用的三种方法,都实现了对彩色图像的灰度化处理。
下面分别对其作具体分析如下:
方法一:
加权平均法
根据重要性及其它指标,将R、G、B三个分量以不同的权值进行加权平均。
由于人眼对绿色的敏感度最高,对蓝色敏感度最低。
因此,在MATLAB中我们可以按下式系统函数(4-1),对RGB三分量进行加权平均能得到较合理的灰度图像。
f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))(4-1)
方法二:
平均值法
将彩色图像中的R、G、B三个分量的亮度求简单的平均值,将得到均值作为灰度值输出而得到灰度图。
其表达式见下式(4-2):
f(i,j)=(R(i,j)+G(i,j)+B(i,j))/3(4-2)
方法三:
最大值法
将彩色图像中的R、G、B三个分量中亮度的最大值作为灰度图的灰度值。
其表达式见下式(4-3):
f(i,j)=max(R(i,j),G(i,j),B(i,j))(4-3)
5源代码及分析
5.1源代码
首先,打开MATLAB软件,新建M文件。
M文件是包括MATLAB代码的文件。
然后,进行代码编写。
本次课程设计的源代码如下:
MyYuanLaiPic=imread('F:
/3055.jpg');%读取RGB格式的图像
MyFirstGrayPic=rgb2gray(MyYuanLaiPic);%用已有的函数进行RGB到灰
%度图像的转换
[rows,cols,colors]=size(MyYuanLaiPic);%得到原来图像的矩阵的参数
Sec000000000000000000000000c=zeros(rows,cols);%用得到的参数创建一个全零的矩阵,这个矩%阵用来存储用下面的方法产生的灰度图像
SecGrayPic=uint8(SecGrayPic);%将创建的全零矩阵转化为uint8格式,因%为用上面的语句创建之后图像是double型的
ThirdGrayPic=zeros(rows,cols);
ThirdGrayPic=uint8(ThirdGrayPic);
fori=1:
rows
forj=1:
cols
sum1=0;
sum2=0;
fork=1:
colors
sum1=sum1+MyYuanLaiPic(i,j,k)/3;%用均值法进行RGB到%灰度图像的转换
sum2=sum2+max(MyYuanLaiPic(i,j,k));%用最大值法进行%RGB到灰度图像转换
end
SecGrayPic(i,j)=sum1;%将得到的加权平均值作为对应像素点
%的灰度值
ThirdGrayPic(i,j)=sum2;%将得到的简单平均值作为对应像素点
%的灰度值
end
end
imwrite(SecGrayPic,'F:
/1.bmp','bmp');%将转换后图像以bmp格式写入文件%1.bmp
imwrite(ThirdGrayPic,'F:
/2.bmp','bmp');%将转换后图像以bmp格式写入文件%2.bmp
figure
(1);%显示第1幅图像
imshow(MyYuanLaiPic);%显示原来的RGB图像
figure
(2);%显示第2幅图像
imshow(MyFirstGrayPic);%显示经过系统函数运算过的灰度图像
figure(3);%显示第3幅图像
imshow(SecGrayPic);%显示均值法转化之后的灰度图像
figure(4);%显示第4幅图像
imshow(ThirdGrayPic);%显示最大值法转化之后的灰度图像
5.2代码分析
该程序采用三种方法实现彩色图像的灰度化。
程序首先读取一RGB格式的图象,然后调用已有的函数rgb2gray()来实现彩色图像灰度化,此为方法一;继而,调用size函数读取原图像图像的尺寸,并以该尺寸构建一个全零矩阵来存储用下面的方法产生的灰度图像。
由于在此之前的语句创建之后图像为双精度型,因而我们采用uint8()将其转化成无符号整型。
然后对原图像中的像素逐点处理,首先采用的是均值法,即将每个像素点上的R,G,B分量取其平均,将处理后均值作为该像素点的灰度值输出,对应代码中MyYuanLaiPic(i,j,k)/3语句,在对所有像素点处理完毕后即可实现彩色图像的灰度化处理,此为方法二;最后我还采用了取最大值法,即调用max()函数读取像素点上RGB分量中的最大值作为该点灰度值输出,从而实现彩色图像的灰度化处理。
6功能仿真图及分析
运行程序代码,可得到如下运行结果,对应如上三种方法,可分别得到如图6-1,6-2,6-3和6-4。
图6-1原彩色图
图6-2采用加权平均法的灰度图
图6-3采用均值法的灰度图
图6-4采用最大值法的灰度图
稍作比较即可发现,以三种方法得到的处理结果并不完全相同,这是由于不同的处理方法对于灰度值的选取不同,考虑库函数rgb2gray(),其转化是依据亮度方程f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))来实现的,即依据人眼对不同颜色的敏感度不同,对RGB分量以不同系数的加权平均,得到较为合理的灰度化结果。
而采用方法二处理是对RGB三个分量取简单的平均,从而得到对应灰度值,而方法三则是直接取用RGB分量中最大值作为灰度值输出。
为作进一步说明问题,我们可以分别选用红色图,绿色图以及蓝色图用如上方法处理后来进一步比较说明。
首先,我们选用以红色分量较多的图像进行处理,结果如图6-5所示。
图6-5绿色图像灰度化对比
观察如上对比结果可以发现,对于前两种方法处理得到的figure2和figure3,两图中红色分量灰度化之后基本没有区别,这是由于采用加权平均法对红色分量R的加权系数为0.30,而采用简单平均法的红色分量系数为0.33,故两者对于红色分量的处理结果区别不大,而对于figure4,其采用最大值法,故在亮度现实上明显大于前面二者。
接下来,选取一绿色分量为主的图像进行处理分析,结果如图6-6所示。
图6-6绿色图像灰度化对比
观察如上对比图像结果可以发现,figure3的亮度明显低于figure2,而figure4的亮度则为三个处理结果中最大的。
稍加分析,不难发现,这是由于在方法一的处理中,其对于绿色分量的加权系数为0.59,而方法二中绿色分量的系数约为0.33,加之上图中物体部分颜色为绿色,故作处理后,方法一所得的灰度值大于方法二处理得到的灰度值,因而在显示上,方法一对应的figure2较之方法二对应的figure3更亮;而对于方法三所得的figure4,因其取的是最大值,故最终的灰度值也最大,所以显示最亮。
最后,选取一蓝色分量为主的图像进行处理,结果如图6-7所示。
图6-7蓝色图像灰度化对比
对比如上图像可以发现,此时figure3的亮度大于figure2的,而figure4的亮度依然是三个图像中最大的。
这是由于在得到figure2的方法中,其对于蓝色分量的加权系数是0.11,而figure3对应的方法二中蓝色分量的系数约为0.33,加之此图像中蓝色分量居多,因而就不难解释如上现象,对于方法一处理后对应像素点的灰度值小于方法三处理后对应点的灰度值,故显示在图像上,figure2就偏暗,而figure4取的是最大值,故最终在亮度显示上最亮。
本课程设计中采用的三种不同设计方法对同一彩色图像的灰度化处理结果不相同,究其原因是由于它们在对同一像素点的灰度值确定上采取的手段不一。
对于方法一,其转换公式为
f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))(6-1)
其对于不同颜色分量RGB的加权系数不相同,对比方法二中采用的
f(i,j)=(R(i,j)+G(i,j)+B(i,j))/3(6-2)
其采用的加权系数约为0.33,且对于RBG三个分量采用统一加权系数,所以,当一幅图像中红色分量居多的时候,由于对于红色分量,公式(6-1)计算结果与公式(6-2)计算结果基本相同,即对应点像素灰度值基本一致,故处理结果在亮度显示上区别不大;而对于绿色分量,公式(6-1)计算结果大于公式(6-2)计算结果,也即处理所得的像素灰度值更大,所以在绿色分量居多的图像中,两者在处理后,方法一所得图像亮度大于方法二处理得到的图像;同理,对于蓝色分量居多的图像,其方法一处理所得的图像在亮度显示上会低于方法二处理得到的图像。
对于方法三,由于其对灰度值的选取上取的是最大值,故在最终显示上也最亮。
根据上文分析,也就不难解释在图像6-1,6-2和6-3之间显示不同的问题。
由于原图是一七彩图,其包含了红、绿、蓝以及这三者组合得到的其他颜色分量,故在最终显示上,由方法一所得的图6-1可在对比方法二所得的图6-2时,有些部分偏亮,而有些部分则偏暗,这都是由于两种方法中对不RGB三个不同分量的加权平均系数不一致而造成的。
而对于方法三,由于它只是简单的选取三个分量中的最大值作为灰度值输出,故图6-3的亮度最大。
结束语
本次课程设计要求我们根据已经学习过的数字图像处理知识,运用MATLAB软件进行彩色图像灰度化的仿真设计。
在老师的指导下,我进一步熟悉了MATLAB仿真平台使用方法,并且加深了对彩色图像处理的相关知识的了解,然后在查阅了大量的书籍后,设计出了三种彩色图像灰度化的方案,并顺利实现了仿真。
在本次课程设计过程中,由于对MATLAB中库函数不太熟悉,在一开始的设计过程过程中碰到了很多钉子,但是在老师耐心的指导与同学的帮助下都一一克服了。
在一次次的纠错过程中与不断的摸索下,我终于设计出了彩色图像灰度化的实现代码,并且运行出了正确的结果。
通过这次的课程设计,我深深的感受到了自身的不足。
进行课程设计不但需要多方面的知识,同时还要考验一个人的独立动脑能力和动手能力,这在课本上学不到的。
另外,这还要求我们具有一定的自学能力,在面对多次错误时要能冷静,并且还要有坚定的意志力。
在这次课程设计中,我得到的不仅仅是知识的补充,更多的是问题分析能力的提高,虽然只有短短一周时间,却给了我比平常更多的磨练,也让我在巩固书本知识的同时学到了更多的东西。
在这次的课程设计中,我看到了理论与实际相结合的重要性,同样,我还感受到了将理论实现于现实的重大喜悦,当代码最终成功运行并出现正确的仿真结果时,那种巨大的成就感是无法用言语来形容的。
在实际中,仅仅拥有理论知识是远远不够的,如果不能把理论赋予实践,再丰富的理论知识也只能是“纸上谈兵”,只有将理论与实践相结合,才能结出智慧的果实。
课程设计是对我们综合能力的检测,是培养我们的专业素养以及学习兴趣的很好的途径,学习把理论付诸于实现,能够让我们更加清楚的看到我们努力的结果。
虽然本次课程设计已经结束了,但是我不会忘记从中收到的感受与启发,相信在以后的学习中,我将更加认真努力,争取从知识以及动手能力方面都能更上一层楼!
参考文献
[1]阮秋琦.数字图像处理学[M].北京:
电子工业出版社,2001.
[2]龚声蓉,刘纯平,王强等.数字图像处理与分析[M].北京:
清华大学出版社,2006.
[3]贾永红.计算机图像处理与分析[M].武汉:
武汉大学出版社,2001.
[4]陈桂明.应用MATLAB语言处理数字信号与图像处理[M].北京:
科学出版社,2000.
[5]夏德深,傅德胜.计算机图像处理及应用[M].南京:
东南大学出版社,2004.
[6]姚敏.计算机图像处理[M].北京:
机械工业出版社,2006.
[7]容观澳.计算机图像处理[M].北京:
清华大学出版社,2000.
[8]吴健康.数字图像分析[M].北京:
邮电出版社,1989.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像的基本变换程序设计 颜色变换 数字图像 基本 变换 程序设计 颜色