当前位置:文档之家› 基于MATLAB的彩色图像灰度化处理

基于MATLAB的彩色图像灰度化处理

基于MATLAB的彩色图像灰度化处理
基于MATLAB的彩色图像灰度化处理

目录

第1章绪论............................................................................................................................ - 1 - 第2章设计原理.................................................................................................................... - 2 - 第3章彩色图像的灰度化处理............................................................................................ - 3 - 3.1加权平均法 .. (3)

3.2平均值法 (3)

3.3最大值法 (4)

3.4举例对比 (5)

3.5结果分析 (6)

第4章结论.......................................................................................................................... - 8 - 参考文献....................................................................................................... 错误!未定义书签。附录............................................................................................................................................ - 9 -

基于Matlab的彩色图像灰度化处理探究

第1章绪论

在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗的黑色到最亮的白色的灰度,尽管理论上这个采样可以是任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像[1]。

彩色图像的灰度化技术在现代科技中应用越来越广泛, 例如人脸目标的检测与匹配

以及运动物体目标的监测等等, 在系统预处理阶段, 都要把采集来的彩色图像进行灰度化处理, 这样既可以提高后续算法速度, 而且可以提高系统综合应用实效, 达到更为理想的要求。因此研究图像灰度化技术具有重要意义。

本设计是在MATLAB设计环境中完成的。Matlab的图像处理工具箱提供一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。可用其对有噪声图像或退化图像进行去噪声或还原、增强图像以获得更高清晰度、提取特征、分析形状和纹理以及对两个图像进行匹配等。

本文主要描述基于Matlab仿真软件,通过加权法平均法,平均值法,最大值法三种方法,实现彩色图像的灰度化处理,并对三种方法的处理结果进行分析对比。

第2章设计原理

将彩色图转化成为灰度图的过程称为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征[2]。

在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。本设计采用三种方法对图像进行灰度化处理。

a)加权平均法

根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,对RGB三分量进行加权平均能得到较合理的灰度图像。

b)平均值法

求出每个像素点的R、G、B三个分量的平均值,然后将彩色图像中的这个平均值赋予给这个像素的三个分量。

c)最大值法

将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。

本课程设计分别采用了以上三种设计方案,即加权平均法、平均值法和最大值法。在MATLAB中,通过编程实现了彩色图像的灰度化处理。

第3章彩色图像的灰度化处理

本设计采用的三种方法,都实现了对彩色图像的灰度化处理。下面分别对其作具体分析。

3.1加权平均法[3]

根据重要性及其它指标,将R、G、B三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感度最高,对蓝色敏感度最低。因此,在MATLAB中我们可以按下式系统函数对RGB三分量进行加权平均能得到较合理的灰度图像。

f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)) (3-1)程序首先读取一个RGB格式的图象,然后调用已有的函数rgb2gray()来实现彩色图像灰度化。

图3.1加权平均法的图像灰度处理

3.2平均值法[3]

将彩色图像中的R、G、B三个分量的亮度求简单的平均值,将得到均值作为灰度值输出而得到灰度图。其表达式见下式:

f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3 (3-2)用size函数读取原图像图像的尺寸,并以该尺寸构建一个全零矩阵来存储用下面的方法产生的灰度图像。由于在此之前的语句创建之后图像为双精度型,因而我们采用uint8()将其转化成无符号整型。然后对原图像中的像素逐点处理,首先采用的是均值法,即将每个像素点上的R,G,B分量取其平均,将处理后均值作为该像素点的灰度值输

出,对应代码中MyYuanLaiPic( i,j,k )/3语句,在对所有像素点处理完毕后即可实现彩色图像的灰度化处理。

图3.2平均值法的图像灰度处理

3.3最大值法[3]

将彩色图像中的R、G、B三个分量中亮度的最大值作为灰度图的灰度值。其表达式见下式:

f(i,j)=max(R(i,j),G(i,j),B(i,j)) (3-3)调用max()函数读取像素点上RGB分量中的最大值作为该点灰度值输出,从而实现彩色图像的灰度化处理。

图3.3最大值法的图像灰度处理

稍作比较即可发现,以三种方法得到的处理结果并不完全相同,这是由于不同的处理

方法对于灰度值的选取不同,考虑库函数rgb2gray(),其转化是依据亮度方程

f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))来实现的,即依据人眼对不同颜色的敏感度不同,对RGB分量以不同系数的加权平均,得到较为合理的灰度化结果。而采用方法二处理是对RGB三个分量取简单的平均,从而得到对应灰度值,而方法三则是直接取用RGB分量中最大值作为灰度值输出。

3.4举例对比[3]

为作进一步说明问题,我们可以分别选用红色图,绿色图以及蓝色图用如上方法处理后来进一步比较说明。

首先,我们选用以红色分量较多的图像进行处理,结果如图3.4所示。(此处仅给出灰度图之间的对比,原彩色图见附录彩页)

图3.4红色图像灰度化对比

观察如上对比结果可以发现,对于前两种方法处理得到的图2和图3,两图中红色分量灰度化之后基本没有区别,这是由于采用加权平均法对红色分量R的加权系数为0.30,而采用简单平均法的红色分量系数为0.33,故两者对于红色分量的处理结果区别不大,而对于figure4,其采用最大值法,故在亮度现实上明显大于前面二者。

接下来,选取一绿色分量为主的图像进行处理分析,结果如图3.5所示。

图3.5绿色图像灰度化对比

观察如上对比图像结果可以发现,图3的亮度明显低于图2,而图4的亮度则为三个

处理结果中最大的。稍加分析,不难发现,这是由于在方法一的处理中,其对于绿色分量的加权系数为0.59,而方法二中绿色分量的系数约为0.33,加之上图中物体部分颜色为绿色,故作处理后,方法一所得的灰度值大于方法二处理得到的灰度值,因而在显示上,方法一对应的图2较之方法二对应的图3更亮;而对于方法三所得的图4,因其取的是最大值,故最终的灰度值也最大,所以显示最亮。

最后,选取一蓝色分量为主的图像进行处理,结果如图3.6所示。(此处仅给出灰度图之间的对比,原彩色图见附录彩页)

图3.6蓝色图像灰度化对比

对比如上图像可以发现,此时图3的亮度大于图2的,而图4的亮度依然是三个图像中最大的。这是由于在得到图2的方法中,其对于蓝色分量的加权系数是0.11,而图3

对应的方法二中蓝色分量的系数约为0.33,加之此图像中蓝色分量居多,因而就不难解释如上现象,对于方法一处理后对应像素点的灰度值小于方法三处理后对应点的灰度值,故显示在图像上,图2就偏暗,而图4取的是最大值,故最终在亮度显示上最亮。

3.5结果分析

本课程设计中采用的三种不同设计方法对同一彩色图像的灰度化处理结果不相同,究其原因是由于它们在对同一像素点的灰度值确定上采取的手段不一。对于方法一,其转换公式为

f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)) (3-4)其对于不同颜色分量RGB的加权系数不相同,对比方法二中采用的

f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3 (3-5)其采用的加权系数约为0.33,且对于RBG三个分量采用统一加权系数,所以,当一幅图像中红色分量居多的时候,由于对于红色分量,公式(3-4)计算结果与公式(3-5)计算结果基本相同,即对应点像素灰度值基本一致,故处理结果在亮度显示上区别不大;而对于绿色分量,公式(3-4)计算结果大于公式(3-5)计算结果,也即处理所得的像素

灰度值更大,所以在绿色分量居多的图像中,两者在处理后,方法一所得图像亮度大于方法二处理得到的图像;同理,对于蓝色分量居多的图像,其方法一处理所得的图像在亮度显示上会低于方法二处理得到的图像。对于方法三,由于其对灰度值的选取上取的是最大值,故在最终显示上也最亮。

根据上文分析,也就不难解释在图像3.1,3.2和3.3之间显示不同的问题。由于原图是一七彩图,其包含了红、绿、蓝以及这三者组合得到的其他颜色分量,故在最终显示上,由方法一所得的图3.1可在对比方法二所得的图3.2时,有些部分偏亮,而有些部分则偏暗,这都是由于两种方法中对不RGB三个不同分量的加权平均系数不一致而造成的。而对于方法三,由于它只是简单的选取三个分量中的最大值作为灰度值输出,故图3.3的亮度最大。

第4章结论

通过对彩色图像灰度处理,可以看出载不同情况下得出的图像不同。在老师的指导下,我进一步熟悉了MATLAB仿真平台使用方法,并且加深了对彩色图像处理的相关知识的了解,然后在查阅了大量的书籍后,设计出了三种彩色图像灰度化的方案,并顺利实现了仿真。

在本次课程设计过程中,由于对MATLAB中库函数不太熟悉,在一开始的设计过程过程中碰到了很多钉子,但是在老师耐心的指导与同学的帮助下都一一克服了。在一次次的纠错过程中与不断的摸索下,我终于设计出了彩色图像灰度化的实现代码,并且运行出了正确的结果。

通过这次的课程设计,我深深的感受到了自身的不足。进行课程设计不但需要多方面的知识,同时还要考验一个人的独立动脑能力和动手能力,这在课本上学不到的。另外,这还要求我们具有一定的自学能力,在面对多次错误时要能冷静,并且还要有坚定的意志力。在这次课程设计中,我得到的不仅仅是知识的补充,更多的是问题分析能力的提高,虽然只有短短两周时间,却给了我比平常更多的磨练,也让我在巩固书本知识的同时学到了更多的东西。在这次的课程设计中,我看到了理论与实际相结合的重要性,同样,我还感受到了将理论实现于现实的重大喜悦,当代码最终成功运行并出现正确的仿真结果时,那种巨大的成就感是无法用言语来形容的[4]。

在实际中,仅仅拥有理论知识是远远不够的,如果不能把理论赋予实践,再丰富的理论知识也只能是“纸上谈兵”,只有将理论与实践相结合,才能结出智慧的果实。课程设计是对我们综合能力的检测,是培养我们的专业素养以及学习兴趣的很好的途径,学习把理论付诸于实现,能够让我们更加清楚的看到我们努力的结果。虽然本次课程设计已经结束了,但是我不会忘记从中收到的感受与启发,相信在以后的学习中,我将更加认真努力,争取从知识以及动手能力方面都能更上一层楼!

附录

MyYuanLaiPic = imread('F:/3055.jpg'); %读取RGB格式的图像

MyFirstGrayPic = rgb2gray(MyYuanLaiPic); %用已有的函数进行RGB到灰

%度图像的转换

[rows , cols , colors] = size(MyYuanLaiPic); %得到原来图像的矩阵的参数

SecGrayPic = zeros(rows,cols); %用得到的参数创建一个全零的矩阵,这个矩%阵用来存储用下面的方法产生的灰度图像

SecGrayPic = uint8(SecGrayPic); %将创建的全零矩阵转化为uint8格式,因%为用上面的语句创建之后图像是double型的

ThirdGrayPic=zeros(rows,cols);

ThirdGrayPic=uint8(ThirdGrayPic);

for i = 1:rows

for j = 1:cols

sum1 = 0;

sum2 = 0;

for k = 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); %显示最大值法转化之后的灰度图像

彩色图像:

(a)原彩色图像

(b)加权平均法之灰度图像

(c)平均法之灰度图像

(d)最大值法之灰度图像

(e)红色分量图像处理对比结果

(f)绿色分量图像处理对比结果

(g)蓝色分量图像处理对比结果

非常全非常详细的MATLAB数字图像处理技术

MATLAB数字图像处理 1 概述 BW=dither(I)灰度转成二值图; X=dither(RGB,map)RGB转成灰度图,用户需要提供一个Colormap; [X,map]=gray2ind(I,n)灰度到索引; [X,map]=gray2ind(BW,n)二值图到索引,map可由gray(n)产生。灰度图n默认64,二值图默认2; X=graylice(I,n)灰度图到索引图,门限1/n,2/n,…,(n-1)/n,X=graylice(I,v)给定门限向量v; BW=im2bw(I,level)灰度图I到二值图; BW=im2bw(X,map,level)索引图X到二值图;level是阈值门限,超过像素为1,其余置0,level在[0,1]之间。 BW=im2bw(RGB,level)RGB到二值图; I=ind2gray(X,map)索引图到灰度图; RGB=ind2rgb(X,map)索引图到RGB; I=rgb2gray(RGB)RGB到灰度图。 2 图像运算 2.1 图像的读写 MATLAB支持的图像格式有bmp,gif,ico,jpg,png,cur,pcx,xwd和tif。 读取(imread): [1] A=imread(filename,fmt) [2] [X,map]=imread(filename,fmt) [3] […]=imread(filename) [4] […]=imread(URL,…) 说明:filename是图像文件名,如果不在搜索路径下应是图像的全路径,fmt是图像文件扩展名字符串。前者可读入二值图、灰度图、彩图(主要是RGB);第二个读入索引图,map 为索引图对应的Colormap,即其相关联的颜色映射表,若不是索引图则map为空。URL表示引自Internet URL中的图像。 写入(imwrite): [1] R=imwrite(A,filename,fmt); [2] R=imwrite(X,map,filename,fmt); [3] R=imwrite(…,filename); [4] R=imwrite(…,Param1,V al1,Param2,Val2) 说明:针对第四个,该语句用于指定HDF,JPEG,PBM,PGM,PNG,PPM,TIFF等类型输出文件的不同参数。例如HDF的Quality,Compression,WriteMode;JPEG的BitDepth,Comment:Empty or not,Mode:lossy or lossless,Quality等。 2.2 图像的显示 方法1:使用Image Viewer(图像浏览器),即运用imview函数。 同时显示多帧图像的所有帧,可用到montage函数。

彩色图像的灰度化处理

第1章绪论 1.1数字图像 数字图像,又称数码图像或数位图像,是二维图像用有限数字数值像素的表示。数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用计算机或数字电路存储和处理的图像。 像素(或像元,Pixel)是数字图像的基本元素,像素是在模拟图像数字化时对连续空间进行离散化得到的。每个像素具有整数行(高)和列(宽)位置坐标,同时每个像素都具有整数灰度值或颜色值。 通常,像素在计算机中保存为二维整数数阻的光栅图像,这些值经常用压缩格式进行传输和储存。数字图像可以许多不同的输入设备和技术生成,例如数码相机、扫描仪、坐标测量机、seismographic profiling、airborne radar等等,也可以从任意的非图像数据合成得到,例如数学函数或者三维几何模型,三维几何模型是计算机图形学的一个主要分支。数字图像处理领域就是研究它们的变换算法。 1.2设计平台 本次设计采用的平台是MATLAB 7.0。MATLAB编程语言被业界称为第四代计算机语言,它允许按照数学推导的习惯编写程序。MATLAB7.0的工作环境包括当前工作窗口、命令历史记录窗口、命令控制窗口、图形处理窗口、当前路径选择菜单、程序编辑器、变量查看器、模型编辑器、GUI编辑器以及丰富的函数库和MATLAB附带的大量M文件。 MATLAB是由美国Math Works公司生产的一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种计算和数据处理的、可视化的、强大的计算工具。它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂计算的领域得到了广泛应用。MATLAB作为一种科学计算的高级语言之所以受欢迎,就是因为它有丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担,被称为第四代编程语言。 在MATLAB设计环境中,图像处理工具箱提供一套全方位的参照标准算法

数字图像的灰度处理简述

数字图像的灰度处理 数字图像处理的目的和意义: 图象处理着重强调的是在图象之间进行的各种变换,对图象进行各种加工以改善图象的视觉效果。在图象的灰度处理中,增强操作、直方图及图象间的变换是实现点操作的增强方式,又被称作灰度变换。本文主要介绍了一些数字图像灰度处理的方法,其中图象取反是实现图象灰度值翻转的最直接的方法;灰度切分可实现强化某一灰度值的目的。对直方图进行均衡化修正,可使图象的灰度间距增大或灰度均匀分布、增大反差,使图象的细节变得清晰。 数字图像处理是20世纪60年代初期所形成的一门涉及多领域的交叉学科。所谓数字图像处理,又称为计算机图像处理,就是指用数字计算机及其它有关的数字硬件技术,对图像施加某种应算和处理,从而达到某种预期的目的。在大多数情况下,计算机采用离散的技术来处理来自连续世界的图像。实际上图像是连续的,计算机只能处理离散的数字图像,所以要要对连续图像经过采样和量化以获得离散的数字图像。 数字图像处理中图像增强的目的是改善图像的视觉效果,针对给定图像的应用场合,有目的地强调图像的整体或局部特性,扩大图像中不同物体特征之间的差别,满足某些特殊分析的需要。其方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制图像中某些不需要的特征,使图像与视觉响应特性相匹配。而通过改变图像的灰度以期达到一种很好的视觉效果是图像增强的一种手段。灰度变换的目的是为了改善画质,使图像显示效果更加清晰。 图像的点应算是一种既简单又重要的技术,它能让用户改变图像数据占据的灰度范围。一幅输入图像经过点应算后将产生一幅新的输出图像,由输入像素点的灰度值决定相应的输出像素点的灰度值。图像的点应算可以有效的改变图像的直方图分布,以提高图像的分辨率和图像的均衡。点应算可以按照预定的方式改变一幅图像的灰度直方图。除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点应算可以看作是“从像素到像素”的复制操作。如果输入图像为A(x,y),

灰度变换_原理_及Matlab程序

图像灰度变换 内容摘要 1 引言 通常经输入系统获取的图像信息中含有各种各样的噪声与畸变,例如室外光照度不够均匀会造成图像灰度过于集中;由摄像头获得的图像经过A/D转换、线路传送都会产生噪声污染等等,这些不可避免地影响系统图像清晰度,降低了图像质量,轻者表现为图像不干净,难以看清细节;重者表现为图像模糊不清,连概貌都看不出来。因此,在对图像经行分析前,必须对图像质量经行改善,一般情况下改善的方法有两类:图像增强和图像复原。图像增强的目的是设法改善图像的视觉效果,提高图像的可读性,将图像中感兴趣的特征有选择的突出,便于人与计算机的分析和处理。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征。灰度变换是图像增强处理中一种非常基础直接的空间域图像处理方法。灰度变换是根据某种条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。 1.灰度的线性变换 当图像由于成像时曝光不足或过度, 由于成像设备的非线性或图像记录设备动态范围太窄等因素, 都会产生对比度不足的弊病, 使图像中的细节分辨不清。这时如将图像灰度线性扩展, 常能显著改善图像的主观质量。假设原图像f (x, y ) 的灰度范围是[ a, b ] 希望变换后图像的灰度范围扩展到[ c, d ] 则: M f 表示f ( x, y ) 的最大值。在线性灰度变换中,灰度执照完全线性变换函数进行变换。该线性灰度线性变换函数f ( r ) 是一个一维线性函数: 其中, a 为线性变换的斜率, b 为线性变换函数在y 轴的截距, 如图1所示。

在灰度的线性变换中, 当a > 1时, 输出图像的对比度将增大; 当a < 1时, 输出图像的对比 度将减小; 当a = 1且b ?0时, 所进行的操作仅使所有像素的灰度值上移或下移, 其效果 是使整个图像更暗或更亮; 如果a < 0, 则暗区域将变亮, 亮区域将变暗。 2分段线性灰度变换 为了突出感兴趣的目标或者灰度区间, 相对抑制那些不感兴趣的灰度区域, 可采用分段线性法。常用的是三段线性变换。分段线性变换称为图像直方图的拉伸, 它与完全线性变换类似, 其不同之处在于其变换函数是分段的, 如图2所示: 其变换函数表达式如下: 灰度拉伸可以更加灵活地控制输出灰度直方图的分布, 它可以有选择地拉伸某段灰度区间以改善输出图像。图2所示的变换函数的运算结果是将原图在r1 和r2 之间的灰度拉伸到s1 和s2 之间。如果一幅图像灰度集中在较暗的区域而导致图像偏暗, 可以用灰度拉伸功能来拉伸(斜率> 1) 物体灰度区间以改善图像; 同样如果图像灰度集中在较亮的区域而导致图像偏亮, 也可以用灰度拉伸功能来压缩(斜率< 1) 物体灰度区间来改善图像质量。 3非线性灰度变换

基于MATLAB的彩色图像灰度化处理

基于MATLAB的彩色图像灰度处理 成绩 数字图像处理期末考试 题目基于Matlab的彩色图像灰度化处理 专业、班级11电信一班 姓名钱叶辉 学号 1109121025

基于Matlab的彩色图像灰度化处理 摘要 在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗的黑色到最亮的白色的灰度,尽管理论上这个采样可以是任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像[1]。 彩色图像的灰度化技术在现代科技中应用越来越广泛, 例如人脸目标的检测与匹配 以及运动物体目标的监测等等, 在系统预处理阶段, 都要把采集来的彩色图像进行灰度化处理, 这样既可以提高后续算法速度, 而且可以提高系统综合应用实效, 达到更为理想的要求。因此研究图像灰度化技术具有重要意义。 关键词:灰度化;灰度数字图像;单色图像

一、设计原理 将彩色图转化成为灰度图的过程称为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征[2]。 在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。本设计采用三种方法对图像进行灰度化处理。 加权平均法;平均值法;最大值法。 二、彩色图像的灰度化处理 2.1加权平均法 根据重要性及其它指标,将R、G、B三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感度最高,对蓝色敏感度最低。因此,在MATLAB中我们可以按下式系统函数对RGB三分量进行加权平均能得到较合理的灰度图像。 f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)) (2-1)程序首先读取一个RGB格式的图象,然后调用已有的函数rgb2gray()来实现彩色图像灰度化。 图2.1加权平均法的图像灰度处理 2.2平均值法[3] 将彩色图像中的R、G、B三个分量的亮度求简单的平均值,将得到均值作为灰度值

matlab图像处理图像灰度变换直方图变换

附录1 课程实验报告格式 每个实验项目包括:1)设计思路,2)程序代码,3)实验结果,4)实验中出现的问题及解决方法。 实验一:直方图灰度变换 A:读入灰度图像‘debye1.tif’,采用交互式操作,用improfile绘制一条线段的灰度值。 imread('rice.tif'); imshow('rice.tif'),title('rice.tif'); improfile,title('主对角线上灰度值')

B:读入RGB图像‘flowers.tif’,显示所选线段上红、绿、蓝颜色分量的分布imread('flowers.tif'); imshow('flowers.tif'),title('flowers.tif'); improfile,title('主对角线红绿蓝分量') C:图像灰度变化 f=imread('rice.png'); imhist(f,256); %显示其直方图 g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像) figure,imshow(g1)%将0.5到0.75的灰度级扩展到范围[0 1] g2=imadjust(f,[0.5 0.75],[0 1]); figure,imshow(g2) 图像灰度变换处理实例: g=imread('me.jpg'); imshow(g),title('原始图片'); h=log(1+double(g)); %对输入图像对数映射变换 h=mat2gray(h); %将矩阵h转换为灰度图片

h=im2uint8(h); %将灰度图转换为8位图 imshow(h),title('转换后的8位图'); 运行后的结果: 实验二:直方图变换 A:直方图显示 I=imread('cameraman.tif'); %读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题运行结果如下:

基于MATLAB的图像伪彩色处理

图像伪彩色处理 近几年来,随着多媒体技术和因特网的迅速发展和普及,数字图像处理技术受到了前所未有的广泛重视,出现了许多新的应用领域。最显著的是数字图像处理技术已经从工业领域、实验室走入了商业领域及办公室,甚至走入了人们的日常生活。由于彩色图像提供了比灰度图像更为丰富的信息,因此彩色图像处理正受到人们越来越多的关注。 伪彩色处理是根据特定的准则对灰度值赋以彩色的处理。由于人眼对彩色的分辨率远高于对灰度差的分辨率,所以这种技术可用来识别灰度差较小的像素。这是一种视觉效果明显而技术又不是很复杂的图像增强技术。灰度图像中,如果相邻像素点的灰度相差大,人眼将无法从图像中提取相应的信息,因为人眼分辨灰度的能力很差,一般只有几十个数量级,但是人眼对彩色信号的分辨率却很强,这样将黑白图像转换为彩色图像后,人眼可以提取更多的信息量。同时MATLAB 技术对于我们实现数字图像处理是一种非常有效的实用工具。 1.引言 进入21世纪以来,随着微电子技术、计算机技术、现代通信技术的飞速发展,人类社会正健步迈入信息化时代。在人类所接收到的全部信息中,70%以上的通过视觉得到的。因此对数字图像进行有效地处理变换十分重要,而且彩色图像占很大的比例,所以,对彩色图像的处理显得尤为重要。其中伪彩色处理技术就是一项很重要的图像处理技术。 伪彩色处理是指将黑白图像转化为彩色图像,或者是将单色图像变换成给定彩色分布的图像。由于人眼对彩色的分辨率远高于对灰度差的分辨率,所以这种技术可用来识别灰度差较小的像素。这是一种视觉效果明显而技术又不是很复杂的图像增强技术。灰度图像中,如果相邻像素点的灰度相差大,人眼将无法从图像中提取相应的信息,因为人眼分辨灰度的能力很差,一般只有几十个数量级,但是人眼对彩色信号的分辨率却很强,这样将黑白图像转换为彩色图像后,人眼就可以提高对图像细节的辨别力,提取更多的信息量。因此,伪彩色处理的主要目的是为了提高人眼对图像的细节的分辨能力,以达到图像增强的目的。 伪彩色图像处理技术已经被广泛应用于遥感和医学图像处理中,适用于航摄、遥感图片和云图判读、X光片等方面。 基本原理是将黑白图像或者单色图像的各个灰度级匹配到彩色空间中的一点,从而使单色图像映射成彩色图像。黑白图像中不同的灰度级赋予不同的彩色。

实验一Matlab图像处理基础及图像灰度变换

实验一Matlab图像处理基础及图像灰度变换 一、实验目的 了解Matlab平台下的图像编程环境,熟悉Matlab中的DIP (Digital Image Processing)工具箱;掌握Matlab中图像的表示方法,图像类型、数据类型的种类及各自的特点,并知道怎样在它们之间进行转换。掌握Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。 二、实验内容 1.从硬盘中读取一幅灰度图像; 2.显示图像信息,查看图像格式、大小、位深等内容; 3.用灰度面积法编写求图像方图的Matlab程序,并画图; 4.把第3步的结果与直接用Matlab工具箱中函数histogram的结果进行比较,以衡量第3步中程序的正确性。 5.对读入的图像进行直方图均衡化,画出处理后的直方图,并比较处理前后图像效果的变化。 三、知识要点 1.Matlab6.5支持的图像图形格式 TIFF, JEPG, GIF, BMP, PNG, XWD (X Window Dump),其中GIF不支持写。 2.与图像处理相关的最基本函数 读:imread; 写:imwrite; 显示:imshow; 信息查看:imfinfo; 3.Matlab6.5支持的数据类 double, unit8, int8, uint16, int16, uint32, int32, single, char (2 bytes per element), logical. 4.Matlab6.5支持的图像类型 Intensity images, binary images, indexed images, RGB image 5.数据类及图像类型间的基本转换函数 数据类转换:B = data_class_name(A);

基于MATLAB的彩色图像灰度化处理

目录 第1章绪论............................................................................................................................ - 1 - 第2章设计原理.................................................................................................................... - 2 - 第3章彩色图像的灰度化处理............................................................................................ - 3 - 3.1加权平均法 .. (3) 3.2平均值法 (3) 3.3最大值法 (4) 3.4举例对比 (5) 3.5结果分析 (6) 第4章结论.......................................................................................................................... - 8 - 参考文献....................................................................................................... 错误!未定义书签。附录............................................................................................................................................ - 9 -

Matlab二维灰度图象分析及变换处理要点

《基础强化训练》设计报告 题目:二维灰度图象的统计分析及变换处理专业班级: 学生姓名: 指导教师: 2010 年7 月17 日

《基础强化训练》设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 二维灰度图象的统计分析及(FFT)变换处理 课程设计目的: ①较全面了解常用的数据分析与处理原理及方法; ②能够运用相关软件进行模拟分析; ③掌握基本的文献检索和文献阅读的方法; ④提高正确地撰写论文的基本能力。 课程设计内容和要求 ①采集一幅像素大于64*64黑白图像; ②常规的数学统计数据处理:计算图象各象素点灰度值得均值、标准差、方差,并绘出灰度直方图; ③采用[FFT(傅立叶变换)]对图像进行分析 初始条件: ①MATLAB软件。 ②数字信号处理与图像处理基础知识。 时间安排: 第18周周一:安排任务 19~20周:仿真设计(鉴主13楼计算机实验室) 第20周周六:完成(答辩,提交报告,演示) 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要 (1) Abstract (2) 1 数据采集 (3) 1.1图像的选取 (3) 1.2 MATLAB读取方法 (4) 1.2.1 编辑M文件 (4) 1.2.2 图像的读取 (4) 1.2.3查看图像的格式 (6) 1.2.4 灰度值的获取 (7) 2 数据统计处理 (8) 2.1 均值计算 (8) 2.1.1 原理及计算公式 (8) 2.1.2 计算程序及结果 (9) 2.2 各像素点灰度值的标准差 (9) 2.3 各像素点灰度值的方差 (10) 2.4 灰度直方图 (11) 3.傅立叶变化 (13) 3.1 原理及计算公式 (13) 3.2 变换及逆变换程序及结果 (14) 3.3对变换后的图像的说明 (16) 4.总结(心得体会) (17) 5.参考文献 (18)

图像灰度化

图像灰度化 颜色可分为黑白色和彩色。黑白色指颜色中不包含任何的色彩成分,仅由黑色和白色组成。在RGB颜色模型中,如果R=G=B,则颜色(R, G, B)表示一种黑白颜色;其中R=G=B的值叫做灰度值,所以黑白色又叫做灰度颜色。彩色和灰度之间可以互相转化,由彩色转化为灰度的过程叫做灰度化处理;由灰度化转为彩色的过程称为伪彩色处理。 相应地,数字图像可分为灰度图像和彩色图像。通过灰度化处理和伪彩色处理,可以使伪彩色图像与灰度图像相互转化。 灰度化就是使彩色的R,G,B分量值相等的过程。由于R,G,B的取值范围是0 ~ 255,所以灰度的级别只有256级,即灰度图像仅能表现256种颜色(灰度)。 灰度化的处理方法主要有如下3种[6]: (1)最大值法:使R,G,B的值等于3值中最大的一个,即 R=G=B=max(R,G,,B) (2-3 ) 最大值法会形成亮度很高的灰度图像。 (2)平均值法:使R,G,B的值求出平均值,即 R=G=B=(R+G+B)/3 (2-4 )平均值法会形成比较柔和的灰度图像。 (3)加权平均值法:根据重要性或其他指标给R,G,B赋予不同的权值,并使R,G,B的值加权平均,即 R=G=B=(W r R + W g G + W b B)/3 (2-5 )其中W r,W g,W b分别为R,G,B的权值。W r,W g,W b取不同的值,加权平均值法就形成不同的灰度图像。由于人眼对绿色的敏感度最高,红色次之,对蓝色最低,因此使W g>W r>W b将得到比较合理的灰度图像。实验和理论推导证明,但W r= 0.30,W g =0.59,W b=0.11时,即当 V gray=0.30R + 0.59G + 0.11B R=G=B= V gray(2-6 )时,能得到最合理的灰度图像。 本文采用方法(3)实现灰度转化,有比较好的效果,结果如图所示。

图像处理灰度变换实验

一. 实验名称:空间图像增强(一) 一.实验目的 1.熟悉和掌握利用matlab工具进行数字图像的读、写、显示、像素处理等数字图像处理的基本步骤和流程。 2.熟练掌握各种空间域图像增强的基本原理及方法。 3.熟悉通过灰度变换方式进行图像增强的基本原理、方法和实现。 4.熟悉直方图均衡化的基本原理、方法和实现。 二.实验原理 (一)数字图像的灰度变换 灰度变换是图像增强的一种经典而有效的方法。灰度变换的原理是将图像的每一个像素的灰度值通过一个函数,对应到另一个灰度值上去从而实现灰度的变换。常见的灰度变换有线性灰度变换和非线性灰度变换,其中非线性灰度变换包括对数变换和幂律(伽马)变换等。 1、线性灰度变换 1)当图像成像过程曝光不足或过度,或由于成像设备的非线性和图像记录设备动态范围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清,图像缺少层次。这时,可将灰度范围进行线性的扩展或压缩,这种处理过程被称为图像的线性灰度变换。对灰度图像进行线性灰度变换能将输入图像的灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。 2)令原图像f(x,y)的灰度范围为[a,b],线性变换后得到图像g(x,y),其灰度范围为[c,d],则线性灰度变换公式可表示为

a y x f b y x f a b y x f c c a y x f a b c d d y x g <≤≤>?????+---=),(),(),(, ,]),([,),( (1) 由(1)式可知,对于介于原图像f (x,y )的最大和最小灰度值之间的灰度值,可通过线性变换公式,一一对应到灰度范围[c,d]之间,其斜率为(d-c)/(b-a);对于小于原图像的最小灰度值或大于原图像的最大灰度值的灰度值,令其分别恒等于变换后的最小和最大灰度值。变换示意图如图1所示。 图1 线性灰度变换示意图 当斜率大于一时,变换后的灰度值范围得到拉伸,图像对比度得到提高;当斜率小于一时,变换后的灰度值范围被压缩,最小与最大灰度值的差变小,图像对比度降低;当斜率等于一时,相当于对图像不做变换。 3)由上述性质可知,线性灰度变换能选择性地加强或降低特定灰度值范围内的对比度,故线性灰度变换同样也可做分段处理:对于有价值的灰度范围,将斜率调整为大于一,用于图像细节;对于不重要的灰度范围,将图像压缩,降低对比度,减轻无用信息的干扰。最常用的分段线性变换的方法是分三段进行线性变换。 在原图像灰度值的最大值和最小值之间设置两个拐点,在拐点处,原图像的灰度值分别为r 1,r 2,该拐点对应的变换后的图像的灰度值分别为s 1,s 2,另外,取原图像灰度的最小值为r 0,最大值为r m ,对应的变换后的灰度值分别为s 0,s m 。

matlab图像的灰度变换

实验二 图像的灰度变换 一、实验目的 1、 理解数字图像处理中点运算的基本作用; 2、 掌握对比度调整与灰度直方图均衡化的方法。 二、实验原理 1、对比度调整 如果原图像f (x , y )的灰度范围是[m , M ],我们希望对图像的灰度范围进行线性调整,调整后的图像g (x , y )的灰度范围是[n , N ],那么下述变换: []n m y x f m M n N y x g +---=),(),(就可以实现这一要求。 MATLAB 图像处理工具箱中提供的imadjust 函数,可以实现上述的线性变换对比度调整。imadjust 函数的语法格式为: J = imadjust(I,[low_in high_in], [low_out high_out]) J = imadjust(I, [low_in high_in], [low_out high_out])返回原图像I 经过直方图调整后的新图像J ,[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围,灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1]。 不使用imadjust 函数,利用matlab 语言直接编程也很容易实现灰度图像的对比度调整。但运算的过程中应当注意以下问题,由于我们读出的图像数据一般是uint8型,而在MATLAB 的矩阵运算中要求所有的运算变量为double 型(双精度型)。因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。 2、直方图均衡化 直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。 MATLAB 图像处理工具箱中提供的histeq 函数,可以实现直方图的均衡化。 三、实验内容及要求 1、 用MATLAB 在自建的文件夹中建立example2.m 程序文件。在这个文件的程序中,将girl2.bmp 图像文件读出,显示它的图像及灰度直方图(可以发现其灰度值集中在一段区

用matlab实现图像灰度变换课程设计

课程设计报告册 课程名称: MATLAB课程设计 课题名称:灰度变换增强 专业班级: 姓名: Bob Wang 学号: 15164 课程设计主要场所:信息楼220 时间: 指导教师:成绩:

前言 数字图像处理技术是20世界60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或变成以完成各自的计算。MATLAB中集成了功能强大的图像处理工具箱。由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。 MATLAB是一种以矩阵运算为基础的交互式程序语言,能够满足科学、工程计算和绘图的要求,与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。我们学习掌握MATLAB,也可以说是在科学工具上与国际接轨。

目录 一、课程设计目的 (2) 二、设计任务及容 (2) 三、课题设计实验条件 (3) 四、涉及知识 (3) 五、具体设计过程及调试 (4) 5.1、图像的读入和显示 5.1.1、打开图像 (4) 5.1.2、显示原图像 (5) 5.1.3、图像灰度处理 (7) 5.1.4、显示灰阶后图像 (8) 5.2、直方图均衡化 5.2.1、生成直方图 (10) 5.2.2、直方图均衡化 (12) 5.3、灰度变换 5.3.1、线性变换 (9) 5.3.2、分段线性变换 (9) 5.3.3、非线性变换.................................... (9) 六、心得体会 (17) 七、参考文献 (18) 八、程序清单 (19)

图像灰度化

图像灰度化 图像灰度化原理:关于YUV空间的彩色图像,其Y的分量的物理意义本身就是像素点的亮度,由该值反映亮度等级,因此可根据RGB和YUV颜色空间的变化关系建立亮度Y与R、G、B三个颜色分量的对应:Y=0.299R+0.587G+0.114B,以这个亮度值表达图像的灰度值 图像处理结果: 程序代码: char *pmydata; //定义一个指针用来指向位图图像数据在内存中的存储区域

//long wide, high; BITMAP bm; pbmp->GetBitmap(&bm); pmydata=new char[bm.bmWidthBytes*bm.bmHeight]; //根据位图的高度 宽度初始化一下 pbmp->GetBitmapBits(bm.bmWidthBytes*bm.bmHeight,pmydata); //将位 图对象的数据COPY到pmydata指向的区域,m_bm是位图对象,bm是位图结构, 可参考上一篇文章的定义 for(int i=0;iSetBitmapBits(bm.bmWidthBytes*bm.bmHeight,pmydata); //将处 理后的数据COPY进位图对象 DrawBmp(); 图像均值化 图像均值化原理:图通常是最能说明问题的东西,非常明显的,这个3*3区域像 素的颜色值分别是5,3,6,2,1,9,8,4,7那么中间的1这个像素的过滤后的值就是这些值的平均 值,也就是前面的计算方法:(5+3+6+2+1+9+8+4+7)/9=5, 图像处理结果:

matlab图像数据类型转换

uint 8:无符号的8位(8bit)整型数据(unit 都是存储型) int :整型数据 1、在MATLAB中,数值一般都采用double型(64位)存储和运算. 2、为了节省存储空间,MATLAB为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称为8位型像。 3、函数image能够直接显示8位图像,但8位型数据和double型数据在image中意义不一样, 4、对于索引图像,数据矩阵中的值指定该像素的颜色种类在色图矩阵中的行数。当数据矩阵中的值为0时,表示用色图矩阵中第一行表示的颜色绘制;当数据矩阵中的值为1时,表示用色图矩阵中的第二行表示的颜色绘制该像素,数据与色图矩阵中的行数总是相差1。所以,索引图像double型和uint8型在显示方法上没有什么不同,只是8位数据矩阵的值和颜色种类之间有一个偏差1。调用格式均为image(x); colormap(map); 5、对于灰度图像,uint8表示范围[0,255],double型表示范围[0,1]。可见,double型和uint8型灰度图像不一样,二者转换格式为: I8=uint8 (round (I64*255)); !!double转换成uint 8 I64=double (I8)/255; !!!uint转换成double 反之,imread根据文件中的图像种类作不同的处理。当文件中的图像为灰度图像时,imread 把图像存入一个8位矩阵中,把色图矩阵转换为双精度矩阵,矩阵中每个元素值在[0,1]内;当为RGB图像时,imread把数据存入到一个8位RGB矩阵中。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double 因此 I2=im2double(I1) :把图像数组I1转换成double精度类型; 如果不转换,在对uint8进行加减时会产生溢出 图像数据类型转换函数 默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 im2double():将图象数组转换成double精度类型 im2uint8():将图象数组转换成unit8类型 im2uint16():将图象数组转换成unit16类型 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 默认情况下,matlab将图像中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 但是,问题的真正的解释其实应该是这样的。首先是在数据类型转换时候uint8和im2uint8的区别,uint的操作仅仅是将一个double类型的小数点后面的部分去掉;但是im2uint8是将输入中所有小于0的数设置为0,而将输入中所有大于1的数值设置为255,再将所有其他值乘以255。 图像数据在进行计算前要转化为double类型的,这样可以保证图像数据运算的精

数字图像处理之灰度化处理程序

数字图像处理之灰度化处理程序 BOOL CDib::Blackwhite() { long int DataSizePerLine; DataSizePerLine =(m_pBIH->biWidth * m_pBIH->biBitCount /8+3)/4*4; if( m_pDib == NULL ) return( FALSE ); int temp; if(m_nPaletteEntries != 0) { for (int i=0; ibiHeight * m_pBIH->biWidth; unsigned char * temppale = new unsigned char [BitsCount] ; int i = 0; for ( int k=0; kbiHeight ; k++) { for (int j=0; jbiWidth; j++) { temp = * ( m_pDibBits + k* DataSizePerLine + j*3 )

(完整word版)图像灰度化

图像灰度化处理 彩色图像是由三个不同的分量组成,我们称之为三通道图像。对彩色图像进行处理时,我们往往需要对三个通道依次进行处理,时间开销将会很大。因此,为了达到提高整个应用系统的处理速度的目的,需要减少所需处理的数据量。在图像处理中,图像的灰度化的就是把由RGB 三通道的数据的彩色图像变为单通道的数据的灰度图像。在上述的RGB 模型中,如果R, G, B 他们的值相等,即使是三通道数据,也是表现中一种灰度颜色,灰度值就是R, G, B 的值。灰度图像中各个像素位置的灰度范围为0-255。可以发现,当R,G 和B 他们三者相等时,我们只需一个字节存放该灰度值即可,对于R, G, B 不同的三通道图像,也可以进行灰度化。 目前,最常用的是以下四种彩色图像灰度化方法: 1. 单分量法 三通道图像中R, G, B 三个分量的值可以分别作为灰度图像的灰度值。我们可 以根据实际应用的需要选择其中一个作为灰度图像即可。此时,灰度化公式如下: f ( x, y ) = R( x, y) f ( x, y ) =G ( x, y) f ( x, y )= B( x, y) 其中f ( x, y) 为灰度化后的灰度图像在位置(x, y)的像素值, R(x, y), G(x, y), B(x,y)分别表示三个分量的值。 2.最大值法:该方法首先计算各个像素位置的三个分量的最大值,然后将最大 者作为灰度化后的结果,即: f (x, y)= max ((R ( x, y ) , G ( x, y ) , B ( x, y )) 3.平均值法:对于彩色图像,该方法首先计算三个通道分量的平均值,然后将 该平均值作为图像的灰度值,即: f ( x, y ) = ( R( x, y ) +G ( x, y ) + B( x, y)) / 3 4.加权平均法 上述三种方法实现简单,都是对三个分量做同等处理,然而并没有考虑不同分 量的重要性。根据三个分量的各自的重要性或者其他需要,可以对三个分量分配 不同的权值,然后计算加权结果,并将加权后的均值作灰度化的结果。即可以按 下式对输入的图像信号进行灰度化: f (x, y)= 0.30 R ( x, y )+ 0.59G ( x, y)+ 0.11B ( x, y ) 在图像灰度化时,加权平均法是目前最常用的方法。因为其灰度化结果更为 合理,更符合实际应用的需要。图 2.1.b 为对图 2.1.a 中的彩色图像,采用上述的 加权平均法进行灰度化后的结果。 function I = rgb2gray(varargin) threeD = (ndims(X)==3); T = inv([1.0 0.956 0.621; 1.0 -0.272 -0.647; 1.0 -1.106 1.703]); coef = T(1,:); if threeD if isa(X, 'double') || isa(X, 'single') X = reshape(X(:),origSize(1)*origSize(2),3); sizeOutput = [origSize(1), origSize(2)];

图像处理实验图像的灰度化处理及亮度的调整

重庆交通大学数字图像处理与通信课程实验报告 班级: 实验项目名称:图像的灰度化处理及亮度的调整实验项目性质:设计性实验 实验所属课程:数字图像处理与图像通信 实验室(中心):网络实验中心 指导教师: 实验完成时间:2012年10月16日

教师评阅意见: 签名:年月日实验成绩: 一、实验目的: 1、熟悉matlab或者C#的编程环境,完成在相关环境下图像的读入、显示、 保存等操作; 2、完成图像的灰度化处理; 3、完成图像的亮度调整的模块编写; 4、完成图像的平移操作(选做)。 二、实验主要内容及要求: 1、熟悉matlab软件的工作窗口及命令; 2、通过matlab软件,对一幅图像进行读入,显示,保存,并对其做灰 度化处理; 3、对图像进行亮度调整以及图像的平移。 三、实验设备及软件: PC机一台,MATBLAB软件。 四、设计方案: 通过对图像灰度化处理的算法,将图像的像素值进行线性变换,以及将三维彩色图像转变为二维图像,即实现了将图像灰度化处理。以及增加(降低)像素的值,可以对图像进行亮度的增(减)。对图像进行平移时,可以利用一个生成的零矩阵,将需要平移的图像的像素值按其列或按其行进行递增赋值与零矩阵,即实现了对图像向左右或者向上下的平移。

五、主要代码及必要说明: 1、对图像灰度化 f=imread('Winter.jpg'); figure(1); imshow(f); for x=1:600 for y=1:800 g(x,y)=0.3*f(x,y,1)+0.59*f(x,y,2)+0.11*f(x,y,3); end; end; figure(2); imshow(g); 2、对图像进行平移 clc;clear; a=imread('house.jpg'); b=im2double(a); si=size(b);m=si(1);n=si(2); figure,imshow(b); g1=zeros(m,n); for x=m:-1:51 for y=n:-1:51 g1(x-50,y-50)=b(x,y); end end figure,imshow(g1); 六、测试结果及说明: 通过利用以上代码,对图像进行了灰度化处理,平移处理,其实验结果如下所示:

相关主题
文本预览
相关文档 最新文档