图像增强图像滤波边缘检测的MATLAB实现图形.docx
《图像增强图像滤波边缘检测的MATLAB实现图形.docx》由会员分享,可在线阅读,更多相关《图像增强图像滤波边缘检测的MATLAB实现图形.docx(17页珍藏版)》请在冰豆网上搜索。
![图像增强图像滤波边缘检测的MATLAB实现图形.docx](https://file1.bdocx.com/fileroot1/2023-3/29/99b75aab-02c0-444d-8f57-b2e6b2cb6b7c/99b75aab-02c0-444d-8f57-b2e6b2cb6b7c1.gif)
图像增强图像滤波边缘检测的MATLAB实现图形
直方图统计算法对灰度图像进行增强
n=64
n=256时:
直方图均衡化增强图像的对比度
用直方图均衡化后,图像的直方图的灰度间隔被拉大了,均衡化的图像的一些细节显示了出来,这有利于图像的分析和识别。
直方图均衡化就是通过变换函数histeq将原图的直方图调整为具有“平坦”倾向的直方图,然后用均衡直方图校正图像。
直方图规定化对图像进行增强
50:
2:
250
50:
1:
250
hgram=50:
5:
250;
3 图像滤波的Matlab实现
3.1conv2函数
功能:
计算二维卷积
格式:
C=conv2(A,B)
C=conv2(Hcol,Hrow,A)
C=conv2(...,'shape')
说明:
对于C=conv2(A,B),conv2的算矩阵A和B的卷积,若[Ma,Na]=size(A),[Mb,Nb]=size(B),则size(C)=[Ma+Mb-1,Na+Nb-1];
C=conv2(Hcol,Hrow,A)中,矩阵A分别与Hcol向量在列方向和Hrow向量在行方向上进行卷积;C=conv2(...,'shape')用来指定conv2
返回二维卷积结果部分,参数shape可取值如下:
》full为缺省值,返回二维卷积的全部结果;
》same返回二维卷积结果中与A大小相同的中间部分;
valid返回在卷积过程中,未使用边缘补0部分进行计算的卷积结果部分,当size(A)>size(B)时,size(C)=[Ma-Mb+1,Na-Nb+1]。
3.2conv函数
功能:
计算多维卷积
格式:
与conv2函数相同
3.3filter2函数
功能:
计算二维线型数字滤波,它与函数fspecial连用
格式:
Y=filter2(B,X)
Y=filter2(B,X,'shape')
说明:
对于Y=filter2(B,X),filter2使用矩阵B中的二维FIR滤波器对数据X进行滤波,结果Y是通过二维互相关计算出来的,其大
小与X一样;对于Y=filter2(B,X,'shape'),filter2返回的Y是通过二维互相关计算出来的,其大小由参数shape确定,其取值如下
:
》full返回二维相关的全部结果,size(Y)>size(X);
》same返回二维互相关结果的中间部分,Y与X大小相同;
》valid返回在二维互相关过程中,未使用边缘补0部分进行计算的结果部分,有size(Y)3.4fspecial函数
功能:
产生预定义滤波器
格式:
H=fspecial(type)
H=fspecial('gaussian',n,sigma) 高斯低通滤波器
H=fspecial('sobel') Sobel水平边缘增强滤波器
H=fspecial('prewitt') Prewitt水平边缘增强滤波器
H=fspecial('laplacian',alpha) 近似二维拉普拉斯运算滤波器
H=fspecial('log',n,sigma) 高斯拉普拉斯(LoG)运算滤波器
H=fspecial('average',n) 均值滤波器
H=fspecial('unsharp',alpha) 模糊对比增强滤波器
说明:
对于形式H=fspecial(type),fspecial函数产生一个由type指定的二维滤波器H,返回的H常与其它滤波器搭配使用。
图像滤波平滑模板对图像进行滤波:
(二维线性滤波fliter2)
线性滤波(邻域平均)
线性低通滤波器最常用的是线性平滑滤波器,这种滤波器的所有系数都是正的,也称邻域平均。
邻域平均减弱或消除了傅立叶变换的高频分量,对噪声的消除有所增强,但是由于平均而使图像变得更为模糊,细节的锐化程度逐渐减弱。
中值滤波
中值滤波可以保留目标边缘,这是中值滤波器相对于均值滤波器的最大优势。
中值滤波具有去噪的性能,可以消除孤立的噪声点,可以用来减弱随机干扰和脉冲干扰,但是边缘不模糊。
中值滤波的效果要比邻域平均的低通滤波效果好,中值滤波以后的图像的轮廓比较清晰,而且使用较小的模板得到的视觉效果反而好一些。
锐化滤波
图像锐化处理的目的是使模糊图像变得清晰,锐化滤波器减弱或消除了傅立叶空间的低频分量,保留高频分量,从而加强了图像的轮廓,使图像看起来比较清晰。
面应用Laplacian算子对图像进行锐化处理:
Laplacian算子是线性二次微分算子,其格式为:
h=fspecial('laplacian',alpha),返回一个3×3的滤波器来近似二维Laplacian算子的形状,参数alpha决定了Laplacian算子的形状,alpha的取值范围为0.0~1.0,默认的值为0.2。
分析:
由图可以看出,应用了Laplacian算子对图像锐化以后,将图像区域的边缘轮廓勾划了出来,因此Laplacian算子对于边缘检测也具有很好的功效。
边缘检测
下面利用sobel算子对图像进行边缘检测:
使用edge函数实现图像的边缘检测,其调用格式为:
BW=edge(I,'sobel',thresh,direction) 根据指定的敏感阈值thresh用Sobel算子对图像进行边缘检测,edge函数忽略了所有小于阈值的边缘,如果没有指定阈值thresh或为空,函数自动选择参数值,direction指定Sobel算子边缘检测的方向,其参数值为'horizontal','vertical'或'both'(默认)。
测试结果图:
sobel算子自动选择的阈值为:
0.1433
由图可以看出,在采用水平和垂直方向的Sobel算子对图像进行边缘检测时,分别对应的水平和垂直方向上的边缘有较强的响应,阈值越小,检测的图像的边缘细节数越多,而增大阈值时,有些轮廓则未能检测出。
其用法和Sobel算子类似。
其调用格式为:
BW=edge(I,'prewitt',thresh,direction)根据指定的敏感阈值thresh用Prewitt算子对图像进行边缘检测。
测试结果:
prewitt算子自动选择的阈值为:
0.1399
sobel算子自动选择的阈值为:
0.1441
prewitt算子自动选择的阈值为:
0.1406