您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 造纸印刷 > MATLAB常用图像增强方法(精)
数字图像处理实验报告实验名称:常用图像增强方法专业班级:07级电子信息工程2班姓名:王超学号:20077427一、实验目的1、熟悉并掌握MATLAB图像处理工具箱的使用;2、理解并掌握常用的图像的增强技术。二、实验步骤1、显示图像直方图选择一幅图像,转化为灰度图像后显示其直方图,建立M文件程序如下:a=imread('f:\chuan.jpg';b=rgb2gray(a;subplot(1,2,1;imshow(b;subplot(1,2,2;imhist(b结果如图:2、直方图均衡化建立M文件,程序如下:a=imread('f:\chuan.jpg';b=rgb2gray(a;subplot(1,3,1;imshow(b;subplot(1,3,2;imhist(b;c=histeq(b,64;[c,T]=histeq(b;subplot(1,3,3;imhist(c结果如图:3、采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3*3,5*5,7*7建立M文件程序如下:a=imread('f:\chuan1.jpg';x=rgb2gray(a;b=imnoise(x,'salt&pepper',0.04;subplot(2,2,1;imshow(b;c=medfilt2(b,[33];subplot(2,2,2;imshow(c;d=medfilt2(b,[55];subplot(2,2,3;imshow(d;e=medfilt2(b,[77];subplot(2,2,4;imshow(e结果如图:1图为加噪图像,2、3、4图分别为窗口采用3*3、5*5、7*7的滤波后的图像4、采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波建立M文件程序如下:a=imread('f:\chuan1.jpg';b=rgb2gray(a;subplot(1,2,1;imshow(b;h=[1,2,1;0,0,0;-1,-2,-1];c=filter2(h,b;subplot(1,2,2;imshow(c结果如图:5、采用三种不同算子对图像进行锐化处理建立M文件如下:a=imread('f:\chuan1.jpg';b=rgb2gray(a;subplot(2,2,1;imshow(b;h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子c=filter2(h,b;subplot(2,2,2;imshow(c;d=double(b;h=[0,1,0;1,-4,0;0,1,0];%拉氏算子e=conv2(d,h,'same';subplot(2,2,3;imshow(e;h=[1,1,1;0,0,0;-1,-1,-1];%Prewitt算子f=filter2(h,b;subplot(2,2,4;imshow(f结果如图:1图为原图的灰度图像;2图为经Sobel算子锐化处理后的图像;3图为经拉氏算子锐化处理后的图像;4图为经Prewitt算子锐化处理的图像三、实验总结1、不同平滑滤波器的处理效果,及其优缺点二维中值滤波器的窗口形式有多种,比如线状、方形等等。不同形状的窗口产生不同的滤波效果,经多次实验,可以发现方形或者圆形窗口适宜于外廓线较长的物体图像,而十字形窗口对有尖顶角状的图像效果较好。中值滤波对离散阶跃信号、斜升信号不产生影响,连续个数小于窗口长度一般的离散脉冲将被平滑,三角函数的顶部平坦化。图像经中值滤波后,能有效的削弱椒盐噪声,而且比超限像素平均法更有效。但是在抑制随机噪声方面,中值滤波要要比均值滤波稍差。均值滤波把每个像素都用周围的8个像素来做均值操作。可以平滑图像,速度快,算法简单。但是无法去掉噪声,这能微弱的减弱它。均值滤波是对是对信号进行局部平均,以平均值来代表该像素点的灰度值。矩形滤波器(AveragingBoxFilter对这个二维矢量的每一个分量进行独立的平滑处理。通过计算和转化,得到一幅单位矢量图。这个512×512的矢量图被划分成一个8×8的小区域,再在每一个小区域中,统计这个区域内的主要方向,亦即将对该区域内点方向数进行统计,最多的方向作为区域的主方向。于是就得到了一个新的64×64的矢量图。这个新的矢量图还可以采用一个3×3模板进行进一步的平滑。2、不同锐化滤波器的处理效果,及其优缺点经拉氏算子处理后的图像各向同性、线性和位移不变,而且细线和孤立点检测效果较好。但是边缘方向信息丢失,常常产生双像素的边缘,对噪声有加倍加强的作用。Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。经典Prewitt算子认为:凡灰度新值大于或等于阈值的像素点都是边缘点。即选择适当的阈值T,若P(i,j≥T,则(i,j为边缘点,P(i,j为边缘图像。这种判定是欠合理的,会造成边缘点的误判,因为许多噪声点的灰度值也很大,而且对于幅值较小的边缘点,其边缘反而丢失了。Sobel算子主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量。Sobel算子有两个,一个是检测水平边沿的;另一个是检测垂直平边沿的。它对于象素的位置的影响做了加权,因此效果更好。Sobel算子另一种形式是各向同性Sobel(IsotropicSobel算子,也有两个,一个是检测水平边沿的,另一个是检测垂直平边沿的。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。由于建筑物图像的特殊性,我们可以发现,处理该类型图像轮廓时,并不需要对梯度方向进行运算,所以程序并没有给出各向同性Sobel算子的处理方法。由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数,简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。
本文标题:MATLAB常用图像增强方法(精)
链接地址:https://www.777doc.com/doc-6321948 .html