数字图像处理学习总结这个学期学习了数字图像处理这门课程,主要学习了图像的点运算、几何变换、空间域图像增强、频率域图像增强、形态学图像处理、图像分割(边缘检测)、纹理方向等方面的知识。(1)图像的点运算。○1灰度直方图灰度直方图描述了一幅图像的灰度级统计信息,一般用于图像分割和图像灰度变换等的处理过程中。从数学角度来说,图像直方图描述图像各个灰度级的统计特征,它是图像灰度级的函数,统计一幅图像中各个灰度级出现的次数或频率。从图形上来说,灰度直方图是一个二维图,横坐标为图像中各个像素的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或频率。○2直方图的均衡化直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。从人眼视觉特性来考虑,一幅图像的直方图如果是均匀分布的,即Ps(s)=k(归一化时k=1)时,该图像色调给人的感觉比较协调。因此将原图像直方图通过T(r)调整为均匀分布的直方图,这样修正后的图像能满足人眼视觉要求。因为归一化假定()1()()rPsdsprdr两边积分得0()()rrsTrprdr上式表明,当变换函数为r的累积直方图函数时,能达到直方图均衡化的目的。对于离散的数字图像,用频率来代替概率,则变换函数T(rk)的离散形式可表示为:直方图均衡化的步骤:(1)求原直方图。()Hs[0,255]s(2)求累加值(原直方图)()Fs(3)将累加值乘以255(4)变换(,)((,))()IijFIijrTrkjjkjjrkknnrprTs00)()(○3直方图规定化直方图规定化增强处理的步骤如下:①对原始图像作直方图均衡化处理;②按照希望得到的图像的灰度概率密度函数pz(z),求得变换函数G(z);③用步骤①得到的灰度级s作逆变换z=G-1(s)。经过以上处理得到的图像的灰度级将具有规定的概率密度函数pz(z)。○4灰度变换线性灰度变换函数()fx是一个一维线性函数:()BAAABDfDfDf式中参数Af为线性函数的斜率,Bf为线性函数在y轴的截距,AD表示输入图像的灰度,BD表示输出图像的灰度。其中:11AAff时,输出图像的对比度将增大;当时,输出图像的对比度将减少。○5灰度拉伸分段线性变换利用分段线性变换函数来增强图像对比度的方法实际上是增强原图各部分的反差,即增强输入图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区域。分段线性变换的函数表达式:1xx12xxx2xx式中最重要的参是1212[,][,]xxyy和,12xx和是给出需要转换的灰度范围,12yy和参数决定线性变换的斜率。分段的灰度拉伸可以对灰度图像的灰度值进行拉伸和压缩。如果一幅图像灰度集中在较暗的区域而导致图像偏暗,我们可以用灰度拉伸功能来扩展物体灰度区间以改善图像;反过来,如果一幅图像灰度集中在较亮的区域而导致图像偏亮,可以用灰度压缩功能来扩展物体灰度区间以改善图像质量。(2)图像的几何变换在数字图像处理中,为了更好的对图像进行处理和识别,有时对图像进行一112111212222()()255()255yxxyyfxxxyxxyxxyx些几何变换是必要的,比如图像旋转、图像缩放、图像平移等。几何变换是不改变图像的像素值,只是在图像平面进行像素的安排。其运算包括两点:一是空间变换所需的运算;二是还需要使用灰度插值算法,由于在变换的过程中输出图像的像素课映射到输入图像的非整数坐标上。设原图像00(,)fxy经过几何变换产生的目标像素为11(,)gxy,则该空间变换关系可表示为:100(,)xsxy100(,)ytxy其中00(,)sxy和00(,)txy为由00(,)fxy到11(,)gxy的坐标变换函数。○1图像平移设00(,)xy为原图像上的一点,图像的水平平移量为xT,垂直平移量为yT,则平移之后的点坐标11(,)xy变为:1010xyxxTyyT用矩阵表示为:1100100[1][1]0101xyxyxyTT对变换矩阵求逆,可以得到逆变换为:0011100[1][1]0101xyxyxyTT即0101xyxxTyyT平移后的目标图像中的每一点都可以在原图像中找到对应的点。如新图像中的一个像素(,)ij,可以求出对应原图中的像素(,)xyiTjT。○2图像缩放图像缩放就是图像的缩小和放大,指图像大小按照指定的比率放大或者缩小,假设图像x轴方向的缩放比率xS,y轴方向的缩放比率yS,则缩放变换公式为:11000000[1][1]00[**1]001xyxySxyxySxSyS其逆运算为:1100111001[1][1]00[1]001xyxySxyxyxySSS直接用缩放公式计算得到的目标图像中,某些映射源坐标可能不是整数,从而找不到对应的像素位置,这个时候我们就要用插值算法来处理,一般来说,对图像缩小的采用最近邻插值,对图像放大的采用双线性插值算法。○3图像旋转图像的旋转中以原点为中心的图像旋转。点000(,)pxy绕原点逆时针旋转角度到点111(,)pxy,有旋转公式为:1100cossin0[1][1]sincos0001xyxy其逆变换运算为0011cossin0[1][1]sincos0001xyxy最近邻插值:(,)((),())fxygroundxroundy双线性插值:输出像素的值为输入图像中离它最近的22邻域内采样点像素的灰度值的加权平均。设已知单位正方形的顶点坐标分别为(0,0),(1,0),(0,1),(1,1)ffff(0,0)f(1,0)f(0,1)f(1,1)f我们通过双线性插值得到正方形内任意点(,)fxy的值。首先对上端的两个点进行双线性插值得到:(,0)(0,0)[(1,0)(0,0)]fxfxff再对下端的两个顶点进行双线性插值得到:(,1)(0,1)[(1,1)(0,1)]fxfxff最后,对垂直方向进行双线性插值得到:(,)(,0)[(,1)(,0)]fxyfxyfxfx结合上面的两式,最后得到:(,)[(1,0)(0,0)][(0,1)(0,0)][(1,1)(0,0)(0,1)(1,0)](0,0)fxyffxffyffffxyf(2)空间域图像增强空域滤波是在图像空间中借助模板进行的邻域操作完成。用模板在图像上平滑操作,逐点移动模板,对每一个点(,)xy,滤波器在该点的响应通过事先定义的关系来计算。空域滤波原理○1对于线性空域滤波,用系数和滤波模板扫过的区域的相应像素值做卷积而得到,在图像(,)xy处的响应值R为:(1,1)(1,1)(1,0)(1,)(1,1)(1,1)Rwfxywfxywfxy将R的值作为图像在(,)xy位置的灰度值。○2中值滤波器中值滤波器是一种非线性滤波器,在一定条件下线性滤波器如平均值滤波器所带来的图像细节模糊问题,对于过滤脉冲干扰及图像扫描噪声有效,但是对点、线、尖顶的图像不宜采用中值滤波的方法。中值滤波是用一个奇数点的滑动窗口,将窗口中心点的值用窗口各点的中值代替。操作如下:1)将模板在图像中移动,并将模板中心与图中某个像素位置重合。f(x-1,y-1)f(x-1,y)f(x-1,y+1)f(x,y-1)f(x,y)f(x,y+1)f(x+1,y-1)f(x+1,y)f(x+1,y+1)w(-1,-1)w(-1,0)w(-1,1)w(0,-1)w(0,0)w(0,1)w(1,-1)w(1,0)w(1,1)2)读取模板下各对应像素的灰度值。3)将这些灰度值从小到大排成1列。4)找出这些灰度值排在中间的1个。5)将这个中间值赋给对应模板中心位置的像素。○3图像锐化在图像传输和变换的过程中,因受到干扰会退化,比较典型的是图像模糊,图像锐化就是是边缘和模糊的图像变得清晰,使其细节更加清晰。我们用的是微分算子。主要用梯度算子的方法。对图像(,)fxy,在其点(,)xy上的梯度可以定义一个二维列向量:[(,)]xyfGxGfxyfGy模为2222[(,)]MxyffGfxyGGxy梯度的方向为1tanyxfGyGfx对一幅图像,常用的微分算子有1)Roberts算子:(,)(1,)xGfxyfxy和(,)(,1)yGfxyfxyRoberts算子2)Sobel算子:对一个点(,)xy((1,1)2(1,)(1,1))((1,1)2(1,)(1,1))xGfxyfxyfxyfxyfxyfxy((1,1)2(,1)(1,1))((1,1)2(,1)(1,1))yGfxyfxyfxyfxyfxyfxy在梯度锐化时,我们是用模板运算,即用Sobel算子模板运算。100-1100-1Sobel算子水平Sobel算子垂直(5)形态学图像处理通过形态学处理不但可以过滤由于噪音或者其他原因引起的一些较小的不可能为人脸的类肤色区域,减少候选区域和提高检测速度,而且可以填补肤色区域内的较小空洞,防止这些空洞被误认为是人脸器官所造成的,为后续检测区域内(欧拉数判断是否为候选区域)降低了误判的可能性。(6)边缘检测边缘检测常用算子:基于一阶微分的边缘检测方法:121000-1-2-110-120-210-1○1Roberts算子考虑图像的2*2邻域,是最简单的边缘检测算子,算法过程简述:1),遍历图像(除去上边缘和左边缘),对每个像素做Roberts模板运算。2),将结果保存到目标图像,结束。○2Sobel算子考察的是3*3邻域,由两个卷积核组成,见上图,算法过程简述:1),遍历图像(除去边缘,防止越界),对每个像素做Sobel模板卷积运算。2),比较两个计算结果的大小,取较大者复制到目标图像,结束。○3Prewitt算子和Sobel算子类似,所不同的是选用不同的模板而已,算法过程相同。Krisch算子同样考究3*3邻域,所不同的是选用了八个卷积核,见上图,算法过程简述:1),遍历图像(除去边缘,防止越界),对每个像素做Krisch模板卷积运算。2),比较八个计算结果的大小,取较大者复制到目标图像,结束。基于二阶微分的边缘检测方法两种Laplacian模板Gauss-Lanlancian算子Laplacian算子是二阶导数边缘算子,考察的是3*3邻域,上图是两种比较常用的模板,算法简述如下:1),遍历图像(除去边缘,防止越界),对每个像素做Laplancian模板卷积运算,注意是只做其中的一种模板运算,并不是两个。2),复制到目标图像,结束。Gauss-Laplacian考察的是5*5的邻域,检测的同时,引入了滤波,是噪声得以平滑,上图是一种常用的算子,算法简述。1),遍历图像(除去边缘,防止越界),对每个像素做Gauss-Laplancian模板卷积运算。1),复制到目标图像,结束。Canny边缘检测是非常重要的一种边缘检测算法,主要过程如下:1),用高斯滤波器平滑图像。已经学习过,根据高斯函数,构造高斯模板,进行滤波,不在赘述。2),用一阶偏导的有限差分来计算梯度的幅值和方向;计算梯度作用模板,遍历像素,进行模板运算即可。幅值和方向:1211111111HH1122,,,,,,mnfmnHmnmnfmnHmn2212211,,,,,tan,mnmnmnmnmnmn其中,Phi表示是幅值,Theta是方向,用图像副本进行保存。3),对梯度幅值进行非极大值抑制;为确定边缘,必须保留局部梯度最大的点,而抑制非极大