数字图像处理作业《图像增强与几何变换》1图像增强1.1图像分段线性变换1.1.1图像分段线性变换原理直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。它的基本思想是把原始图像的直方图变换成均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到了增强图像整体对比度的效果。MATLAB图像处理工具箱中提供的histeq函数,可以实现直方图的均衡化。线性变换是指在图像灰度范围内分段对逐个像元进行处理,是将原图像亮度值动态范围按线性关系(线性函数)变换到指定范围或整个动态范围。在实际运算中给定的是2个亮度区间,即要把输入图像的某个亮度值区间[a,b]映射为输出图像的亮度值区间[c,d]。即按线性比例对图像每一个象素灰度作灰度线性变换,改善图像视觉效果。在实际图像处理中,为了突出感兴趣的目标或灰度区域,相对抑制不感兴趣的灰度区域,常常采用分段线性变换来进行图像灰度的处理。1.1.2图像分段线性变换的matlab实现I=imread('F:\刘.jpg');figure(1);subplot(1,3,1);imshow(I);title('(a)原始图像')J1=rgb2gray(I);subplot(1,3,2);imshow(J1);title('灰度图像');axison;J2=imadjust(J1,[0.010.3],[]);subplot(1,3,3),imshow(J2);title('分线段性变换图');其图为:数字图像处理作业《图像增强与几何变换》1.2图像均衡直方图1.2.1图像均衡直方图原理直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。在灰度直方图均衡化处理中对图像的映射函数可定义为:g=EQ(f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):(1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。(2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态范围的一致性。累积分布函数(cumulativedistributionfunction,CDF)即可以满足上述两个条件,并且通过该函数可以完成将原图像f的分布转换成g的均匀分布。此时的直方图均衡化映射函数为:=EQ()=(ni/n)=pf(数字图像处理作业《图像增强与几何变换》),(k=0,1,2,……,L-1)上述求和区间为0到k,根据该方程可以由源图像的各像素灰度值直接得到直方图均衡化后各像素的灰度值。在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出然后根据计算出的累计直方图分布求出的灰度映射关系。在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化。1.2.2图像均衡直方图的matlab实现I=imread('F:\刘.jpg');b=rgb2gray(I);subplot(2,2,1);imshow(b);title('灰度图像');subplot(2,2,3);imhist(b);title('灰度直方图');c=histeq(b,64);subplot(2,2,2);imshow(c);title('均化处理后图像');subplot(2,2,4);imhist(c);title('均化处理后图像直方图');结果是:数字图像处理作业《图像增强与几何变换》1.3图像均值滤波1.3.1图像均值滤波原理均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度个g(x,y),即个g(x,y)=1/m∑f(x,y)m为该模板中包含当前像素在内的像素总个数。1.3.2图像均值滤波的matlab实现I=imread('F:\刘.jpg');b=rgb2gray(I);subplot(1,2,1);imshow(b);title('灰度图像');h=[1,2,1;0,0,0;-1,-2,-1];c=filter2(h,b);subplot(1,2,2);imshow(c);数字图像处理作业《图像增强与几何变换》title('均值滤波处理后图像');结果是:1.4图像中值滤波1.4.1图像中值滤波原理中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个临域中各点值的中值代替,让周围的像素值接近的值,从而消除孤立的噪声点。方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)},其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,方形,圆形,十字形,圆环形,菱形等。1.4.2图像中值滤波的matlab实现I=imread('F:\刘.jpg');b=im2double(I);数字图像处理作业《图像增强与几何变换》b=rgb2gray(I);b2=imnoise(b,'salt',0.02);b3=medfilt2(b2);b4=wiener2(b2);subplot(2,2,1);imshow(b);title('原始图像');subplot(2,2,2);imshow(b2);title('加入椒盐噪声后的图像');subplot(2,2,3);imshow(b3);title('进行中值滤波后的图像');subplot(2,2,4);imshow(b4);title('进行自适应滤波后的图像');结果是:1.5图像模板卷积1.5.1图像模板卷积原理模板可以是一幅小图像,也可以是一个滤波器,或者说是一个窗口,通常用矩阵来表示。每个模板都有一个原点,对称模板的原点一般取模板中心点,非对称模板的原点可根据使用目的选取。模板卷积是数字图像处理中常用的一种邻域运算方式,它是指模板与图像进行类似于卷积或相关(尽管卷积与相关形式上不同,但由于它们之间的相似性,数字图像处理中常认为它们都是卷积)的运算。模板卷积可实现图像平滑、图像锐化、边缘检测等功能。模板卷积中的模板又称为卷积核,卷积核中的元素称为卷积系数或模板系数或加权系数,其大小及排列顺序决定了对图像进行邻域处理的类型。模板卷积的基本步骤如下:(1)模板在输入图像上移动,让模板原点依次与输入图像中的每个像素重合;(2)模板系数与跟模板重合的输入图像的对应像素相乘,再将乘积相加;数字图像处理作业《图像增强与几何变换》(3)把结果赋予输出图像,其像素位置与模板原点在输入图像上的位置一致。假设模板h有m个加权系数,模板系数hi对应的图像像素为pi,则模板卷积可表示为1.5.2图像模板卷积matlab实现I=imread('F:\刘.jpg');a=rgb2gray(I);subplot(1,3,1);imshow(a);title('灰度图像');b=medfilt2(a,[33]);subplot(1,3,2);imshow(b);title('3*3模板');c=medfilt2(a,[77]);subplot(1,3,3);imshow(c);title('7*7模板');结果为:1.6拉普拉斯增强滤高频波1.6.1拉普拉斯增强滤高频波原理图像锐化处理的作用是使灰度反差增强,从而使模糊图像变得更加清晰。图像模糊的实质数字图像处理作业《图像增强与几何变换》就是图像受到平均运算或积分运算,因此可以对图像进行逆运算,如微分运算以突出图像细节使图像变得更为清晰。由于拉普拉斯是一种微分算子,它的应用可增强图像中灰度突变的区域,减弱灰度的慢变化区域。因此,锐化处理可选择拉普拉斯算子对原图像进行处理产生描述灰度突变的图像,再将拉普拉斯图像与原始图像叠加而产生锐化图像1.6.2拉普拉斯高频增强滤波的matlab实现I=imread('F:\刘.jpg');I1=rgb2gray(I);imshow(I1);J=double(I1);k=size(J);L=zeros(k(1,1),k(1,2));forx=2:k(1,1)-1fory=2:k(1,2)-1L(x,y)=(-J(x+1,y)-J(x-1,y)-J(x,y+1)-J(x,y-1)+4*J(x,y));endendimshow(L);结果是:数字图像处理作业《图像增强与几何变换》数字图像处理作业《图像增强与几何变换》2图像几何变换2.1图像平移2.1.1图像平移变换原理图像平移是将一幅图像中所有的点都按照指定的平移量在水平、垂直方向移动,平移后的图像与原图像相同。平移后的图像上的每一点都可以在原图像中找到。设(x0,y0)为原图像上的一点,图像水平平移量tx,垂直平移量为ty,则平移后点(x0,y0)的坐标变为(x1,y1)。(x0,y0)与(x1,y1)之间的关系为:x1=x0+tx;(1-1)y1=y0+ty;(1-2)以矩阵的形式表示为:1001001001111yxtytxyx(1-3)它的逆变化:1111001001100yxtytxyx(1-4)即:tyyytxxx1010(1-5)这样,平移后的图像上的每一点都可以在原图像中找到对应的点。例如,对于新图中的(0,0)像素,代入上面的方程组,可以求出对应原图中的像素(-tx,-ty)。如果tx或ty大于0,则(-tx,-ty)不在原图中。对于不在原图中的点,可以直接将它的像素值统一设置为0或则255(对于灰度图就是黑色或白色)。同样,若有点不在原图中,也就说明原图中有点被移出显示区域。如果不想丢失被移出的部分图像,可以将新生成的图像宽度扩大|tx|,高度扩大|ty|。2.1.2图像平移的matlab实现根据图像平移变换原理可知程序实现比较简单,利用matlab实现图像的平移变换的程序数字图像处理作业《图像增强与几何变换》如下:%平移变换I=imread('F:\华.jpg');figure(1);subplot(2,2,1);imshow(I);title('(a)原始图像')%在原来的结构元素上进行y和x的平移,平移量分别为100,-100%左下平移se1=translate(strel(1),[100-100]);%形态学膨胀后J就是平移的结果J1=imdilate(I,se1);subplot(2,2,2);imshow(uint8(J1));title('(b)左下平移