数字图像处理-基于灰度变换的图像增强(分段线性、直方图)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理
专业实践
题目名称:基于点处理的图像增强
专业:电子信息工程
学生姓名:吴冲
班级学号:112022320
实验四基于点处理的图像增强
◆引言
图像增强是图像处理中的基本内容之一,在图像处理中占有非常重要的地位。
图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。
当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。
图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。
增强的首要目标是处理图像,使其比原始图像更适合于特定应用。
图像增强的方法主要分为两类:空间域增强法和频域增强法。
“空间域”一词是指图像平面本身,这类方法是以对图像像素直接处理为基础的;“频率域”处理技术是以修改图像的傅氏变换为基础的。
增强处理可将其灰度范围拉伸到0-255的灰度级之间来显示,从而使图像对比度提高,质量改善。
增强主要以图像的灰度直方图最为分析处理的基础。
直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,算法简单,增强效果好。
基于点处理的图像增强方法有:灰度线性变换、灰度非线性变换、灰度分段线性变换和直方图均衡化,本文主要讨论灰度分段线性变换和直方图均衡化对图像的增强,并用MATLAB进行实验验证。
◆图像增强的研究意义
图像增强是数字图像处理的最基本的方法之一,它是为了改善视觉效果或便于人或机器对图像的分析理解,根据图像的特点或存在的问题,以及应用目的所采取的改善图像质量的方法或加强图像的某些特征的措施。
图像在成像、采集、运输、复制等过程中不可避免地会造成某些降质。
如在成像过程中由于光学系统会导致图像失真,不同的光照条件会使图像的曝光度差异很大,运动状态下成像会使图像模糊;而在传输过程中,各种噪声和干扰将污染图像。
因此,通常需要对降质的图像进行预处理,以满足后期处理及分析的需要。
图像复原是改善图像的一类方法,这类方法会尽可能还原图像的本来面目,追求提高图像的保真度。
而图像增强则是一类追求图像可懂度的方法,通过处理有选择地突出某些感兴趣的信息,便于人或机器分析这些信息,抑制一些无用的信息,以提高图像的使用价值。
图像增强处理后的图像比原始图像更适合于具体应用。
由于成像和传输过程的差异性很大,决定了图像增强的方法只能有选择性地使用。
实际应用时,需要根据所针对的处理图像、需要解决的问题以及最终要达到的效果等情况,合理选择合适的图像增强算法,并做适当的优化。
图像增强处理后的图像比原始图像更适合于具体应用。
由于成像和传输过程的差异性很
大,决定了图像增强的方法只能有选择性地使用。
实际应用时,需要根据所针对的处理图像、需要解决的问题以及最终要达到的效果等情况,合理选择合适的图像增强算法,并做适当的优化。
◆实验目的
1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、掌握灰度分段线性变换的图像增强方法。
3、学会用直方图均衡化对图像进行增强。
◆实验内容
一、灰度分段线性变换
1、理论基础:
在某些情况下,为了将图像灰度级整个范围),(B A 或其中某一段扩展或压缩到另一灰度范围),(1k Z Z 质内,称灰度的线性变换。
(1)当图像曝光不充分,使),(B A 区间小于),(1k Z Z 区间,即:1Z A >、k Z B <可选用这样的变换:
1
1
)('Z A Z Z Z Z k +---=
通过这种变换,使得图像灰度范围从),(B A 扩展到),(1k Z Z ,实际上使曝光不充分的图像中
黑的更黑、白的更白,从而提高了图像灰度的对比度。
A B
Z
1
Z k
Z '
Z (2)若图像的绝大部分灰度集中在),(B A 之间,则用这样的变换:
⎪⎩
⎪⎨⎧
>≤≤+---<=B Z Z B
Z A Z A Z A
B Z Z A Z Z Z k k 111)('这种变换实际上失去了一部分图像的信息。
A
B
Z
1
Z k
Z 'Z (3)在某些情况下,为不失去信息,可采用部分压缩,部分扩展的分段变换的方法,如下图所示。
Z
'
Z 分段线性变换和灰度的线性变换有点类似,都用到了灰度的线性变换。
但不同之处在于分段线性变换不是完全的线性变换,而是分段进行线性变换。
将图像灰度区间分成两段乃至多段,分别作线性变换称之为分段线性变换,如图,分段线性变换的优点是可以根据用户的需要,拉伸特征物体的灰度细节,相对抑制不感兴趣的灰度级。
图中的(0,a ),(a,b ),(b,255)等变换区间边界能通过键盘随时做交换式输入,因此,分段线性变换是非常灵活的。
它的灰度变换函数如图所示,函数表达式如下:
⎪⎩
⎪
⎨⎧<≤+---<≤+---<≤=f f M
f b d b f b M d M b
f a c a f a b c d a
f f a c
g ,])][)/([( ,])][)/([(0 ,)/(g 式中,(a,c )和(b,d )是图中两个转折点坐标。
该变换函数的运算结果是将原图在a 和b 之间的灰度拉伸到c 和d 之间。
通过选择的拉伸
某段灰度区间,能够更加灵活地控制图像灰度直方图的分布,以改善输出图像量。
如果一幅图像灰度集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来拉伸(斜率>1)物体灰度区间以改善图像质量;同样如果图像灰度集中在较亮的区域而导致图像偏亮,也可以用灰度拉伸功能来压缩(斜率<1)物体灰度区间以改善图像质量。
2、程序设计:
clc;
clear all;
X1=imread('C:\Users\admin\Desktop\haima.jpg');
subplot(2,2,1),imshow(X1);title('原图');
f0=0;g0=0;%折线点赋值
f1=20;g1=10;
f2=130;g2=180;
f3=255;g3=255;
subplot(2,2,2),plot([f0f1f2f3],[g0g1g2g3]);
axis tight,xlabel('f'),ylabel('g'),title('灰度变换曲线');
r1=(g1-g0)/(f1-f0);%第一段折线的斜率
b1=g0-r1*f0;%计算截距1
r2=(g2-g1)/(f2-f1);
b2=g1-r2*f1;
r3=(g3-g2)/(f3-f2);
b3=g2-r3*f2;
[m,n]=size(X1);
for i=1:m
for j=1:n
f=X1(i,j);
if(f<f1)
g(i,j)=r1*f+b1;
elseif(f>=f1)&(f<=f2)
g(i,j)=r1*f+b1;
else(f>=f2)&(f<=f3)
g(i,j)=r3*f+b3;
end
end
end
subplot(2,2,3),imshow(g);title('灰度变换后');
3、运行结果:
二、直方图均衡化
1、理论基础:
(1)直方图的定义
在图像处理中提到的直方图是指灰度直方图。
它定义为统计图像中具有某种灰度的像素数目(或频率=像素数目/图像总的像素个数)的函数。
灰度直方图概括了图像中各灰度级的含量,提供了原图的灰度值分布情况[12],也可以说给出了1幅图所有灰度值的整体描述。
什么是灰度直方图呢?灰度直方图(histogram)是灰度级的函数,它表示图像中具有每种灰度级的象素的个数,反映图像中每种灰度出现的频率[8]。
设变量r代表图像中像素灰度级。
在图像中,像素的灰度级可作归一化处理,这样,r的值将限定在下述范围之内:0≤r≤1
在灰度级中,r=0代表黑,r=1代表白。
对于一幅给定的图像来说,每一个像素取得[0,1]区间内的灰度级是随即的,也就是说r是一个随即变量。
假定对每一瞬间它们是连续的随即变
(r)来表示原始图像的灰度分布。
如果用直角坐标系的横量,那么,就可以用概率密度函数p
r
(r),这样就可以针对一幅图像在这个轴代表灰度级r,用纵轴代表灰度级的概率密度函数p
r
坐标系中作一条曲线来。
这条曲线在概率论中就是分布密度曲线(见图2.1)
图2.1图像灰度分布概率密度函数
从图像灰度级的分布可以看出一幅图像的灰度分布特性。
例如上图中的两个灰度密度分布
函数中可以看出:(a)的大多数像素灰度值取在较暗的区域,所以这幅图像较暗,一般在摄影过程中暴光过强就会造成这种后果;而(b)图像的像素灰度值集中在亮区,因此,图像(b)的特性将偏亮,一般在摄影中暴光太脆弱将导致这种结果。
当然,从两幅图像的分布来看图像的质量均不理想。
为了有利于数字图像处理,必须引入离散形式。
在离散形式下,用r k代表离散灰度级,用p r(r k)代表p r(r),并且有下式成立:
p r(r k)=n k/n0≤r k≤1
k=0,1,2,.......,l-1(2.8)式中n k为图像中出现r k这种灰度的像素数,n是图像中像素总数,而n k/n就是概率论中所说的频数。
在直角坐标系中作出r k与p r(r k)的关系图形,这个图形称为直方图。
如图2.2所示。
图2.2灰度级的直方图
(2)灰度直方图
面积为A的连续图像f(x,y)经数字化后,成为M行N列的数字图象f(m,n)。
一般而言,在数字图像f(m,n)中取不同灰度值的像素的数目是不同的。
直方图是用于表达图像灰度分布情况的统计图表[4]。
其横坐标是灰度值r,纵坐标是出现这个灰度值的概率密度p(r)(对连续图像f(x,y)而言),或者是出现这个灰度值的概率值p(r i)(对数字图像f(m,n)而言),参见图2.3。
图2.3灰度直方图
我们先来看连续图像f(x,y)的直方图.设图像的面积为A,A(r)是灰度值小于r的这部分图象的面积和,则概率密度p(r)为:
p(r)=lim[A(r+△r)-A(r)]/△r·A(2.9)且有
∫P r (r)dr=1
(2.10)
作出p(r)-r 曲线,如图3(a)所示,得到f(x,y)的直方图。
在数字图像f(m,n)的情况下,上述表达式略有不同.设图像像素的灰度值为r 0,r 1,……….r L_1,则概率p(r i )为:
p(r i )=灰度值为r i 的像素数/图像上总的像素数
(i=0,1,…….,L-1)(2.11)且有
∑P(r i )=1
(2.12)
在计算机中可以方便地从f(m,n)求出p(r i )的分布.由于这时r i 的取值是离散的,因此作出
p(r i )-r i 曲线是不连续的,习惯上画成图2.3(b)的样子。
尽管灰度直方图不能表示出有某灰度级的像素在什么位置,更不能直接显示图象内容,但是具有统计特性的直方图却能描述该图像的灰度分布特性,使人们从中得到的诸如总体明亮程度对象物的可分性等与图像质量有关的灰度分布概貌,成为一些处理方法的重要依据。
(3)直方图均衡化
直方图均衡化是图象增强中点运算的一种最常用的直方图修正法[10]。
其实质是减少图像的灰度等级以换取对比度的扩大。
它把给定图像的直方图分布改造成均匀直方图分布,其本质是扩大了量化间隔,减少量化级别。
因此,会出现这样的效果,原来灰度不同的象素经处理后可能变为相同,形成了一片相同灰度的区域;各区域之间有明显的边界,出现伪轮廓,图像的对比度增加。
但是由于在均衡化过程中,原直方图上频数较少的灰度级被并入少数几个或一个灰度级,对应的图像部分将得不到增强。
直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布[5]。
对于图像的灰度变换,我们这里介绍一种稍微复杂一点的方法,既直方图均衡化。
直方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为基础的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。
若像素点的原灰度为R,变换后的灰度为S,需要注意的是R、S 是归一化后的灰度值,其灰度变换函数T()为:
且S=T(R);
(2.13)
其中,)(j r R P 是第j 级灰度值的概率,j n 是图像中j 级灰度的像素总数,l 是图像中灰度级的总数目,n 是图象中像素的总数[13]。
对变换后的S 值取最靠近的一个灰度级的值,建立灰度级变换表,将原图像变换为直方图均衡的图像。
直方图均衡化的基本思想是把原始图像的直方图变换成均匀分布的形式。
具体做法如下:1.列出原始图像的灰度级Sk ,k=0,1,....,L-1,其中L 是灰度级的个数
2.统计原始图像各灰度级的像素数目nk
3.计算原始图像直方图各灰度级的频率数
4.计算原始图像的累计直方图
5.取整计算:Sk=int[(N-1)tk+k/N]
6.确定映像关系:Sk-->tk
7统计新直方图各个灰度级的像素Nk
8.计算新的直方图:pt(tk)=nk/N
2、程序设计:
clear all
%一、图像的预处理,读入彩色图像将其灰度化
PS=imread('C:\Users\admin\Desktop\haima.jpg');%读入JPG彩色图像文件
imshow(PS)%显示出来
title('输入的彩色图像')
imwrite(rgb2gray(PS),'PicSampleGray.bmp');%将彩色图片灰度化并保存
PS=rgb2gray(PS);%灰度化后的数据存入数组
%二、绘制直方图
[m,n]=size(PS);%测量图像尺寸参数
GP=zeros(1,256);%预创建存放灰度出现概率的向量
for k=0:255
GP(k+1)=length(find(PS==k))/(m*n);%计算每级灰度出现的概率,将其存入GP中相应位置end
figure,bar(0:255,GP,'g')%绘制直方图
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%三、直方图均衡化
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i);%计算Sk
end
end
S2=round((S1*256)+0.5);%将Sk归到相近级的灰度
for i=1:256
GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率
end
figure,bar(0:255,GPeq,'b')%显示均衡化后的直方图
title('均衡化后的直方图')
xlabel('灰度值')
ylabel('出现概率')
%四、图像均衡化
PA=PS;
for i=0:255
PA(find(PS==i))=S2(i+1);%将各个像素归一化后的灰度值赋给这个像素end
figure,imshow(PA)%显示均衡化后的图像
title('均衡化后图像')
imwrite(PA,'PicEqual.bmp');
3、运行结果:
4、结果分析:
直方图均衡化是图像增强技术的基本方法,本文分析了这种处理方法的基本理论,并用Matlab进行实验,结果表明,直方图均衡化在一定程度上改善了图像的对比度差和灰度动态范围,增强了图像的可读性,提高了地物的可分性,有利于进行遥感图像的目视解译。
该算法简单,是一种行之有效的图像增强算法。
实验心得体会
通过这几天的专业课程实践,我学到了很多东西,对如何获得知识也有了一定的感知。
首先,对这个设计题目,要做好充分的准备工作,经过在图书馆查找一些相关的资料,上网搜索一些相关的知识后,我们终于对需要的流程有了一定的规划。
其次,在实际设计过程中,我们充分地利用课本上和老师提过的一些知识、思路。
同时与组内同学认真交谈,相互领会对方的思路和方法,提高自己的交际能力和团队精神。
再次,通过对此设计,我们对图像处理的知识有了更加深入的了解,知道了什么是图像增强,什么是点处理技术,怎样利用图像增强的知识处理学习、生活中遇到的一些问题。
在此次程序课程设计中,收获知识的同时也收获了阅历,收获了成熟。
我们不仅培养了独立思考问题的能力,也提高了获取知识的能力。
以后会更加珍惜和重视这样的机会。