图像处理灰度变换实验_第1页
图像处理灰度变换实验_第2页
图像处理灰度变换实验_第3页
图像处理灰度变换实验_第4页
图像处理灰度变换实验_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一.实验名称:空间图像增强(一)一 实验目的1 熟悉和掌握利用matlab工具进行数字图像的读、写、显示、像素处理等数字图像处理的基本步骤和流程。2 熟练掌握各种空间域图像增强的基本原理及方法。3 熟悉通过灰度变换方式进行图像增强的基本原理、方法和实现。4 熟悉直方图均衡化的基本原理、方法和实现。二 实验原理(1) 数字图像的灰度变换灰度变换是图像增强的一种经典而有效的方法。灰度变换的原理是将图像的每一个像素的灰度值通过一个函数,对应到另一个灰度值上去从而实现灰度的变换。常见的灰度变换有线性灰度变换和非线性灰度变换,其中非线性灰度变换包括对数变换和幂律(伽马)变换等。1、线性灰度变换1)当图像

2、成像过程曝光不足或过度,或由于成像设备的非线性和图像记录设备动态范围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清,图像缺少层次。这时,可将灰度范围进行线性的扩展或压缩,这种处理过程被称为图像的线性灰度变换。对灰度图像进行线性灰度变换能将输入图像的灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。2)令原图像f(x,y)的灰度范围为a,b,线性变换后得到图像g(x,y),其灰度范围为c,d,则线性灰度变换公式可表示为 (1)由(1)式可知,对于介于原图像f(x,y)的最大和最小灰度值之间的灰度值,可通过线性变换公式,一一对应到灰度范围c,d之间,其斜率为(d-c)/

3、(b-a);对于小于原图像的最小灰度值或大于原图像的最大灰度值的灰度值,令其分别恒等于变换后的最小和最大灰度值。变换示意图如图1所示。图1 线性灰度变换示意图当斜率大于一时,变换后的灰度值范围得到拉伸,图像对比度得到提高;当斜率小于一时,变换后的灰度值范围被压缩,最小与最大灰度值的差变小,图像对比度降低;当斜率等于一时,相当于对图像不做变换。3) 由上述性质可知,线性灰度变换能选择性地加强或降低特定灰度值范围内的对比度,故线性灰度变换同样也可做分段处理:对于有价值的灰度范围,将斜率调整为大于一,用于图像细节;对于不重要的灰度范围,将图像压缩,降低对比度,减轻无用信息的干扰。最常用的分段线性变换

4、的方法是分三段进行线性变换。在原图像灰度值的最大值和最小值之间设置两个拐点,在拐点处,原图像的灰度值分别为r1,r2,该拐点对应的变换后的图像的灰度值分别为s1,s2,另外,取原图像灰度的最小值为r0,最大值为rm,对应的变换后的灰度值分别为s0,sm。则分段线性灰度变换公式为 (2)调整公式中的各个参数,即可得到不同的变换效果4) 在线性灰度变换中,有一种特殊的变换,叫做图像反色。通过图像反色变换,每一个像素点的变换前后的灰度值之和为白色(255)。图像反色的变换公式为 (3)当L取为256时,实现图像反转变色2、非线性灰度变换除了图像灰度的线性变换外,还有非线性灰度变换。非线性灰度变换不是

5、对图像的所有灰度值进行拉伸,一部分被拉伸,另一部分则会被压缩。非线性灰度变换在整个灰度值范围内采用统一的变换函数。比较常见的有对数变换和幂律(伽马)变换等。1) 对数变换设原图像为f(x,y),变换后的图像为g(x,y),对数变换的变换函数为 (4)(4) 式中,c是一个比例因子,log是求以e为底的数值的对数,原图像灰度值加1的目的是保证对数变化对于任何灰度值都有意义。c取适当的值,可得到对数变换的函数图像如图2所示。图2 对数变换函数曲线由图2可知,通过对数变换,对于较低的灰度值起到较大程度的拉伸作用,而对于较高的灰度值起到压缩作用,从而将整幅图像的灰度值均匀化。2) 幂律(伽马)变换伽马

6、变换可通过调节幂指数参数来改变其变换特性,设f(x,y)和g(x,y)分别为变换前后的图像,为幂指数,c为比例系数,则伽马变换的公式如下 (5)对于c为正值的情况,当1时,伽马变换将低灰度值压缩,高灰度值拉伸;当1 I1=rgb2gray(I1); %满足条件,将看似为黑白图的多通道图转化为灰度图endI1=double(I1); %将图片灰度的数据类型转变为double型%这一部转化很重要,在后续的计算中,尤其是除法,运算结果能保证更高的精度lo,wi=size(I1); %获得矩阵I1的行列尺寸,以备单个像素处理时的循环算法a=min(min(I1); %得到原图(I1)所有像素灰度的最小

7、值b=max(max(I1); %得到原图(I1)所有像素灰度的最小值I2=zeros(lo,wi); %初始化矩阵I2,为处理后的图像分配内存c=10;d=250; %设置灰度线性拉伸后的灰度最小值和最大值%接下来,对矩阵I1中的逐个像素进行线性灰度变换,并存到I2相应位置for i=1:lo for j=1:wi I2(i,j)=(d-c)/(b-a)*(I1(i,j)-a)+c; %线性灰度变换公式 endendI1=mat2gray(I1);I2=mat2gray(I2); %将变换后的矩阵I1、I2转换为8位整型subplot(2,2,2),imshow(I2); %在一张22图的第

8、2个位置显示I2title(线性灰度变换后的图片);imwrite(I2,线性灰度变换后的图片.bmp,bmp) %以另一个文件名形式保存图像subplot(2,2,3),imhist(I1); %在一张22图的第3个位置显示I1的灰度直方图ylim(0,7000),title(原图片灰度直方图);subplot(2,2,4),imhist(I2); %在一张22图的第4个位置显示I2的灰度直方图ylim(0,7000),title(变换后图片灰度直方图);% 画灰度变换曲线x=0:255; %设置0到255共256级灰度级y=zeros(1,256); %设置全0向量,为线性灰度变换后的数值

9、分配内存%按灰度级,从0到255开始循环,即x(1)到x(256)for i=1:256 if x(i)=a&x(i)b y(i)=d; %当原图灰度介于a,b之间,用公式变换 endendfigure,plot(x,y) %创建新的图片窗口,显示变换函数曲线title(线性变换曲线图),xlim(0,255),ylim(0,255)ylim(0,255); %限定横坐标范围为0到2552、 非线性灰度变换% 对图像做非线性变换clear,clcI1=imread(Ein.jpg); %读取图像文件Ein.jpg,赋值给矩阵I1figure,imshow(I1); %创建一个图像显示窗口并显示

10、图像title(原图像)if size(I1,3)1 I1=rgb2gray(I1); %满足条件,将三通道的图片变为灰度图endI1=double(I1); %将图片的数据类型转变为double型,以便后续计算准确lo,wi=size(I1); %得到矩阵I1的行数和列数,即像素个数I2=zeros(lo,wi);I3=zeros(lo,wi); %创建两个全零矩阵用于存放对数和伽马变换后的矩阵% 对图像做对数变换c=5;d=1/255; %令对数变换中的比例系数为5,伽马变换中的比例系数为1/255%对每一个像素的灰度值,用循环分别进行变换for i=1:lo for j=1:wi I2(

11、i,j)=c*log(1+I1(i,j); %对数变换公式 endendI2=mat2gray(I2); %必须将double型的矩阵还原为8位整型才能显示figure,imshow(I2,) %显示时由于灰度太低,需要MATLAB的内部方式进行拉伸title(通过对数变换后的图像)imwrite(I2,通过对数变换后的图像.bmp,bmp) %保存成一个新的文件% 对图像做伽马变换for i=1:lo for j=1:wi I3(i,j)=d*I1(i,j)2; %伽马变换公式,指数为2 endendI3=mat2gray(I3); %还原为整型figure,imshow(I3,) %创建图

12、像窗口,也要伸展显示title(通过伽马变换后的图像)imwrite(I3,通过伽马变换后的图像.bmp,bmp) %保存成一个新文件% 显示对数变换和伽马变换的函数曲线x=0:255;y1=zeros(1,256);y2=zeros(1,256); %规定x坐标,并且为非线性变换后的数值分配内存%对每一个灰度级进行相应的变换for i=1:256 y1(i)=c*log(1+x(i); y2(i)=d*x(i)2;endfigureplot(x,y1),hold on %在同一幅坐标图上绘制两个变换函数plot(x,y2)xlim(0,255),ylim(0,255) %创建新窗口,显示ti

13、tle(对数,伽马变换曲线图)(2) 直方图处理% 读取原图像,并绘制原图像在两种定义下的直方图I1=imread(youngboy.jpg); %读取图像文件youngboy.jpg并赋值给I1figure,imshow(I1) %创建一个图像窗口,显示图像youngboy.jpgtitle(原图)if size(I1,3)1 I1=rgb2gray(I1); %满足条件时将彩图灰度化endlo,wi=size(I1); %获取图像矩阵的长和宽greylevel=0:255; %创建存储灰度级的向量hi=zeros(1,256); %为各灰度级的像素数目分配内存p=zeros(1,256);

14、%为各灰度级的像素出现的频率分配内存for i=1:256hi(i)=length(find(I1=greylevel(i); %寻找等于第i个灰度级的像素并统计个数p(i)=hi(i)/(lo*wi*1.0); %统计上式结果出现的频率,其中分母出现1.0是为了采用double型进行操作end%创建一个图像窗口,同时显示两种顶一下的直方图,灰度级为横坐标,hi和p为纵坐标figuresubplot(2,1,1),stem(greylevel,hi)xlim(0,255)title(原图灰度级出现的次数直方图)subplot(2,1,2),stem(greylevel,p)xlim(0,255

15、)title(原图灰度级出现的频率直方图)% 直方图的均衡化s=zeros(1,256);s(1)=p(1);for i=2:256 s(i)=p(i)+s(i-1); %对于每一个灰度级出现的概率,进行累加操作endH=round(255*s); %用255与求和结果相乘,并四舍五入,将相似的灰度级归为一起I2=zeros(lo,wi); %为均衡化的图像分配内存%对新图的每一个像素的灰度级进行操作for i=1:lo for j=1:wi I2(i,j)=H(I1(i,j)+1); %均衡化后的图像的第(i,j)个像素等于原图该像素对应的灰度值被映射后得到的新灰度 endendfigure

16、,imshow(mat2gray(I2); %显示均衡化后的图像,必须取整型title(直方图均衡化后的图像)% 绘制均衡化后的图像的直方图for i=1:256 hi2(i)=length(find(I2=greylevel(i); p2(i)=hi2(i)/(lo*wi*1.0);end%在同一幅图中显示两个直方图figuresubplot(2,1,1),bar(greylevel,hi2)xlim(0,255)title(均衡后图像灰度级出现次数直方图)subplot(2,1,2),bar(greylevel,p2)xlim(0,255)title(均衡后图像灰度级出现频率直方图)八.思

17、考题1. 为了扩展一幅图像的灰度,使其最低灰度为C、最高灰度为L-1,试给出一个单调的灰度变换函数。 设经过检测,原图像所有像素的最低灰度为a,最高灰度为b,则灰度变换函数为 其中f(x,y)为原图,g(x,y)为变换后的图像。2. 数字图像经过对数变换与幂律变换后,变换结果有什么差异?请按不同参数的取值范围进行具体分析。1) 考虑比例系数为正的情况,一般情况下,对数变换曲线为单调递增且上凸的曲线。对于灰度值较低的部分,对数变换函数增加迅速,斜率大于1,可对其灰度范围进行拉伸;对于灰度值较高的部分,对数变换函数,增长缓慢,斜率小于1,对原图的灰度值范围进行压缩。对数变换可缩小灰度值之间的差距,

18、从而将图像的灰度趋于相等。但是对数变换后,整体的灰度值处于较低水平,需要进行线性拉伸后才能正常显示。2) 考虑比例系数和指数为正的情况。当指数取值大于1时,伽马变换函数为下凸的单调递增函数,在第灰度去,伽马变换函数增长缓慢,斜率小于一,灰度范围被压缩;在高灰度区,伽马变换增长迅速,斜率大于一,灰度范围被拉伸,变换后结果呈现“暗的越暗,亮的越亮”的趋势;反之,当伽马取值小于1时,变换函数为上凸单调递增函数,低灰度区增长快,斜率大于1,对灰度范围拉伸;高灰度区,函数增长慢,斜率小于1,对灰度范围压缩,结果与对数变换类似;若=1,函数为线性递增函数,即线性变换。若指数0,随着原图灰度值的增加,变换后的灰度值减小,呈现反色趋势,但目前并没有涉及到。3. 从连续函数的概率分布来分析,直方图均衡处理可以使得各个灰度级分布变为均匀分布,即拉平直方图。而对实际数字图像的处理结果却是一种近似平直,而不是严格意义上的均匀直方图,试说明其理由。会造成量化误差。在直方图均衡化的过程中,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论