图像增强灰度变换增强.docx
《图像增强灰度变换增强.docx》由会员分享,可在线阅读,更多相关《图像增强灰度变换增强.docx(15页珍藏版)》请在冰豆网上搜索。
图像增强灰度变换增强
成绩评定表
学生姓名
赵诗雅
班级学号
1303030403
专业
电子信息工程
课程设计题目
图像空域增强算法设计—
灰度变换增强
评
语
组长签字:
成绩
日期
2016年7月18日
课程设计任务书
学院
信息科学与工程
专业
电子信息工程
学生姓名
赵诗雅
班级学号
1303030403
课程设计题目
图像空域增强算法设计—灰度变换增强
实践教学要求与任务:
本设计要求利用Matlab进行编程及仿真,仿真内容为图像空域增强算法设计——灰度变换增强。
拟利用所学数字图象处理技术知识,在Matlab软件系统上来实现灰度变换增强,并且对程序进行测试。
要求如下:
(1)掌握课程设计的相关知识、概念、思路及目的。
(2)程序设计合理、能够正确运行且操作简单,可实施性强。
(3)掌握灰度变换增强的方法。
(4)能够利用线性变换,非线性变换对灰度图像进行变换。
工作计划与进度安排:
第一阶段(1-2天):
熟悉matlab编程环境,查阅相关资料;
第二阶段(2-3天):
算法设计;
第三阶段(2-3天):
编码与调试;
第四阶段(1-2天):
实验与分析;
第五阶段(1-2天):
编写文档。
指导教师:
2016年7月3日
专业负责人:
2016年7月4日
学院教学副院长:
2016年7月4日
摘要
空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。
图像变换增强是利用一系列的变换方法使图像的对比度得到提升,以达到增强图像的目的,便于观察,易于区分不同灰度的图像。
灰度变换的方法有线性灰度变换、分段线性灰度变换、非线性灰度变换。
本文采用灰度变换技术,分别对灰度图像进行了线性灰度变换增强、非线性灰度增强和分段线性灰度增强。
仿真结果表明灰度变换可使图像动态范围增大,图像对比度扩展,图像变清晰,特征明显;对于灰度局限在某一个很小范围内的数字图像,采用线性函数对图像的每一个像素进行线性扩展,扩大像素的对比度,将有效地改善视觉效果,达到了提高图像对比度,增强图像效果的目的,证明了图像变换增强在数字图像处理中的重要作用。
关键词:
空域增强;灰度变换;线性灰度变换;非线性灰度变换
1设计目的与要求
1.1设计目的
空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。
灰度变换是空域变换的一种重要方式,可使图像对比度扩展,图像清晰,特征明显。
本实验中,我们就用灰度变换来对灰度图像进行处理。
1.2设计要求
(1)熟练掌握MATLAB软件的基本操作
(2)学会掌握MATLAB软件的程序编程
(3)查阅相关资料并分析,掌握灰度变换增强的主要思路
(4)培养独立分析和解决问题的能力,学会撰写课程设计的总结报告
(5)善于总结和改进方案,提高可实施性和高效性。
2设计原理
2.1线性灰度变换
线性变换简单的线性灰度变换法可表示为g(x,y)=(d-c/b-a)[f(x,y)-a]+c,其中:
b和a分别是输入图像亮度分量的最大值和最小值,d和c分别是输出图像亮度分量的最大值和最小值。
经过线性灰度变化法,图像亮度分量的线性范围从[a,b]变化到[c,d],如图2.1所示:
图2.1线性拉伸示意图
若图像中大部分像素的灰度级分布在区间[a,b]内,M为原图的最大灰度级,只有很小一部分的灰度级超过了此区间,则为了改善增强效果,可以令:
(2.1)
由于人眼对灰度级别的分辨能力有限,只有当相邻像素的灰度值相差到一定程度时才能被辨别出来。
通过上述变换,图像中相邻像素灰度的差值增加,例如在曝光不足或过度的情况下,图像的灰度可能会局限在一个很小的范围内,这时得到的图像可能是一个模糊不清,似乎没有灰度层次的图像。
采用线性变换对图像中每一个像素灰度作线性拉伸,将有效改善图像视觉效果。
[1]
2.2分段线性灰度变换
为了突出图像中感兴趣的目标或灰度区间,相对抑制那些不感兴趣的灰度区间,可采用分段线性变换,它将图像灰度区间分成两段乃至多段分别作线性变换。
进行变换时,把0~255整个灰度值区间分为若干线段,每一个直线段都对应一个局部的线性变换关系。
常用的三段线性变换如图2.2所示:
图2.2分段线性拉伸示意图
图中,中间段的灰度得到拉伸,两端灰度被压缩公式如2.2所示:
(2.2)
2.3非线性灰度变换
非线性拉伸不是对图像的整个灰度范围进行扩展,而是有选择的对某一灰度范围进行扩展,其他范围的灰度值则有可能被压缩。
非线性拉伸利用变换函数的数学性质实现对不同灰度值区间的扩展与压缩。
下面介绍其中一种非线性扩展法:
对数变换。
对数变换,是指输出图像的像素点的灰度值与对应的输出图像的像素灰度值之间为对数关系,其一般公式为:
g(x,y)=a+ln[f(x,y)+1]/blnc,式中a,b,c都是可以选择的参数,式中f(x,y)+1是为了避免对0求对数,确保ln[f(x,y)+1]≥0。
当f(x,y)=0时,ln[f(x,y0+1),则y=a,则a为y轴上的截距,确定了变换曲线的初始位置的变换关系b,c,两个参数确定变换曲线的变换速率。
对数变换扩展了低灰度区,压缩了高灰度区,能使低灰度区的图像较清晰地显示出来。
[2]
3设计方案
3.1设计思想
灰度变换可使图像对比度扩展,图像清晰,特征明显。
它是图像增强的重要手段。
在图像空间所进行的灰度变换是一种点处理方法,它将输入图像中的每个像素(x,y)的灰度值f(x,y),通过映射函数变换成输出图像中的灰度g(x,y),即
g(x,y)=T[f(x,y)](3.1)
根据函数的性质,灰度变换的方法有以下几种:
(1)线性灰度变换。
(2)分段线性灰度变换。
(3)非线性灰度变换。
对于线性灰度变换和非线性灰度变换,是直接用确定的公式依次对每个像素进行处理,也称为直接线性变换。
[3]
3.2设计流程
如下图3.1所示为线性变换流程图。
图3.1线性变换流程
如图3.1所示,先将输入的灰度图像f(x,y)的位置及标签设置好之后,选择线性函数对原灰度图像进行灰度拉伸的处理,增强其对比度,得到变换之后的图像并输出。
图3.2为分段线性变换增强流程图。
图3.2分段线性变换流程
由图3.2可知,先将输入的灰度图像f(x,y)的位置及标签设置好之后,再设置灰度值变化的范围,分别为0-70,70-180和180-255。
这三个范围的变化函数不同,从而达到使图像的灰度值拉伸程度不同的目的。
经过分段线性变换后,得到变换后的图像g(x,y)。
图3.3为非线性变换增强流程。
[4]
图3.3非线性变换流程
由图3.3可知,先将输入图像f(x,y)的位置和标签设置好之后,确定图像灰度拉伸和压缩的范围,按照要求设置参数,利用对数函数对原始灰度图像进行非线性变换得到输出图像g(x,y)。
4软件实现
4.1线性灰度变换增强
通过调用imread函数和imshow函数来实现线性灰度变换增强,其核心代码如下:
I=imread('fish.jpg');%读入原图像
I=im2double(I);%转换数据类型为double
[M,N]=size(I);%计算图像面积
figure
(1);subplot(121);%打开新窗口,设置图像位置
imshow(I);%显示原图像
title('原图像');%定义标签
Fa=6;Fb=-160;
O=Fa.*I+Fb/255;%线性变换公式
figure
(1);subplot(122);
imshow(O);
title('灰度变换后的图像');
4.2分段线性灰度变换增强
通过调用imread函数和imshow函数来实现分段线性灰度变换增强,其核心代码如下:
X1=imread('girl.jpg');%读入原图像
subplot(221),imshow(X1);%输出图像
title('原图像');%在原始图像中加标题
f0=0;g0=0;%进行灰度级线性分段增强;
f1=70;g1=30;
f2=180;g2=230;
f3=255;g3=255;
subplot(223),plot([f0,f1,f2,f3],[g0,g1,g2,g3]);
axistight,xlabel('f'),ylabel('g'),title('灰度变换曲线');%绘制灰度变换线
%增强对比度
r1=(g1-g0)/(f1-f0);
b1=g0-r1*f0;
r2=(g2-g1)/(f2-f1);
b2=g1-r2*f1;
r3=(g3-g2)/(f3-f2);
b3=g2-r3*f2;
[m,n]=size(X1);
X2=double(X1);%变换矩阵中的每一个元素
fori=1:
m
forj=1:
n
f=X2(i,j);
g(i,j)=0;
if(f>=0)&(f<=f1)
g(i,j)=r1*f+b1;
elseif(f>=f1)&(f<=f2)
g(i,j)=r2*f+b2;
elseif(f>=f2)&(f<=f3)
g(i,j)=r3*f+b3;
end
end
end
subplot(222),imshow(mat2gray(g));%输出变换之后的图像
title('分段线性变换后的图像');
4.3非线性灰度变换增强
通过调用imread函数和imshow函数来实现非线性灰度变换增强,其核心代码如下:
I=imread('knot.jpg');%读取图像
I=mat2gray(I);%将一个矩阵转化为灰度图像的数据格式
I=im2double(I);%转化为双精度
J=log(I+1);
subplot(1,2,1);
Imshow(I);%显示图像
title('原图像');
subplot(1,2,2);
Imshow(J);
title('非线性对数变换后的图像')
5仿真与结果分析
在MATLAB7.1中运行以上程序,分别对三幅灰度图像分别进行线性变换,分段线性变换和非线性变换后得到灰度被拉伸和压缩的图像。
得到变换后的灰度图像并加以比较分析。
[5]
5.1仿真
利用MATLAB7.1对灰度原图像图5.1(a)进行线性灰度变换得到变换后灰度图像5.1(b)。
图5.1(a)输入的原图像图5.1(b)变换后的灰度图像
由图5.1(a)和5.1(b)可知,左面的图像为处理之前的原图像,对比度相对较小。
采用线性函数对其每一个像素做线性拉伸之后得到右面的图像,图像的灰度值相比原图像变大。
经过变换后的图像与原图像相比较扩大了对比度,有效的增强了视觉效果。
[6]
利用MATLAB7.1对灰度图像图5.3(a)按照灰度值的不同进行分段线性灰度变换得到变换后灰度图像图5.3(b)。
图5.2为灰度变换曲线图。
[7]
图5.2灰度变换曲线
图5.3(a)输入的原图像图5.3(b)变换后的灰度图像
由图5.2,图5.3(a)和图5.3(b)可知,灰度变化的范围分别是0-70,70-180和180-255。
这种变换方式对不同范围的灰度值进行不同的拉伸处理,中间灰度值进行了拉伸而对两端的灰度值进行了压缩。
变换后的图像变亮并且突出了人物的部分,达到了增强图像效果的目的。
[8]
利用MATLAB7.1对灰度图像图5.4(a)按照灰度值的不同进行非线性灰度变换得到变换后灰度图像图5.4(b)。
图5.4(a)输入的原图像图5.4(b)变换后的灰度图像
由图5.4(a)和图5.4(b)可知左面的图像为处理之前的原图像,右面的图像为经过非线性变换之后的图像。
这种变换有选择地对某一灰度值范围进行扩展,而其他范围的灰度值有可能进行压缩,达到图像增强的效果。
[9]
5.2结果分析
线性拉伸可以将原始输入图像中的灰度值不加区别地扩展。
该方法将原始图像灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围,使得整张图片效果得到增强。
非线性拉伸对某一范围的灰度值有选择地进行拉伸,其它部分进行压缩,增强了图片中感兴趣的部分的灰度值而压缩了其余部分的灰度值。
非线性拉伸与分段线性拉伸不同的是,非线性拉伸不是通过在不同灰度值区间选择不同的拉伸方程来实现对图片的扩展与压缩的,非线性变换拉伸在整个灰度范围内采用统一的变换函数,利用变换函数的性质实现对不同灰度值区间的扩展和拉伸。
[10]
结论
空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。
灰度变换是空域变换的一种重要方式,可使图像对比度扩展,图像清晰,特征明显。
本文所设计灰度变换法进行空域增强所取得的成果如下:
(1)在曝光不足或曝光过度,或景物本身灰度就比较小的情况下,图像灰度有可能会局限在某一个很小的范围,致使图像中的细节模糊不清。
正如灰色纽扣掉在与纽扣颜色相近的地毯上就不容易被找到,原因就是他们的颜色太接近。
但是,如果白色纽扣掉到黑色的地毯上就会很容易地被找到,原因就是它们的亮度反差大。
同样,对于灰度局限在某一个很小范围内的数字图像,如果用线性函数对图像的每一个像素进行线性扩展,扩大像素的对比度,将有效地改善视觉效果。
该方法将原始图像灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围,使得图片效果得到增强。
(2)线性拉伸可以将原始输入图像中的灰度值不加区别地扩展。
在实际应用中,为了突出图像中感兴趣的研究对象,常常该方法将原始图像灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围,使得图片效果得到增强。
非线性拉伸对某一范围的灰度值有选择地进行拉伸,其它部分进行压缩。
与分段线性拉伸不同的是,非线性拉伸不是通过在不同灰度值区间选择不同的拉伸方程来实现对图片的扩展与压缩的,非线性变换拉伸在整个灰度范围内采用统一的变换函数,利用变换函数的性质实现对不同灰度值区间的扩展和拉伸。
目前,本设计所采用的灰度变换增强的方法仍存在一些不足。
线性灰度变换计算简单,仅适用于灰度级变化比较平滑的图像,并且有可能受到个别极限灰度级的不良影响。
分段线性增强更适用于有选择性的对图像进行局部线性对比度增强,需要更多的用户输入。
参考文献
[1]刘刚.MATLAB数字图像处理[M].北京:
机械工业出版社.2010:
34-45.
[2]王家文.MATLAB6.5图形图像处理[M].上海:
国防工业出版社.2009:
6-14.
[3]王晓丹.MATLAB系统分析[M].西安:
西安电子科技大学出版.2000:
168-220.
[4]余成波.MATLAB实现[M].重庆:
重庆大学出设.2003:
34-54.
[5]郝文化.MATLAB图像处理[M].河北:
中国水利水电出版社.2004:
66-78.
[6]苏金明.MATLAB图形图像[M].四川:
成都电子工业出版社.2005:
87-90.
[7]杨志刚等.现代通信原理[M].清华大学出版社.2008:
66-89.
[8]哲学.精通MATLAB[M].电子工业出版社.2008:
2-8.
[9]李圣勤.MATLAB7.0实用教程[M].机器工业出版社.2006:
90-118.
[10]朱习军.MATLAB在信号与系统与图像处理中的应用[M].电子工业出版社.2002:
34-50.