文章目录
数字图像处理 原理与实践(MATLAB) 入门教学 实验三 图像平滑与图像锐化实验要求知识点实验内容1、采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3 * 3,5 * 5,7 * 72、采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波3、采用三种不同算子对图像进行锐化处理总结比较不同平滑滤波器的处理效果,分析其优缺点比较不同锐化滤波器的处理效果,分析其优缺数字图像处理 原理与实践(MATLAB) 入门教学 实验三 图像平滑与图像锐化
实验要求
1、熟悉并掌握MATLAB图像处理工具箱的使用
2、理解并掌握常用的图像的增强技术
知识点
1.imnoise
imnoise函数用于对图像生成模拟噪声,如:
i=imread(‘e:\w01.tif’);
j=imnoise(i,‘gaussian’,0,0.02);模拟均值为0方差为0.02的高斯噪声,
j=imnoise(i,‘salt&pepper’, 0.04) 模拟叠加密度为0.04的椒盐噪声
2.fspecial
fspecial函数用于产生预定义滤波器,如:
h=fspecial(‘sobel’);%sobel水平边缘增强滤波器
h=fspecial(‘gaussian’);%高斯低通滤波器
h=fspecial(‘laplacian’);%拉普拉斯滤波器
h=fspecial(‘log’);%高斯拉普拉斯(LoG)滤波器
h=fspecial(‘average’);%均值滤波器
3.基于卷积的图像滤波函数
imfilter函数, filter2函数,二维卷积conv2滤波,都可用于图像滤波,用法类似,如:
i=imread(‘e:\w01.tif’);
h=[1,2,1;0,0,0;-1,-2,-1];%产生Sobel算子的水平方向模板
j=filter2(h,i);
或者:
h = fspecial(‘prewitt’)
I = imread(‘cameraman.tif’);
imshow(I);
H = fspecial('prewitt‘); %预定义滤波器
M = imfilter(I,H);
imshow(M)
或者:
i=imread(‘e:\w01.tif’);
h=[1,1,1;1,1,1;1,1,1];
h=h/9;
j=conv2(i,h);
4.其他常用滤波举例
(1)中值滤波
medfilt2函数用于图像的中值滤波,如:
i=imread(‘e:\w01.tif’);
j=medfilt2(i,[M N]);对矩阵i进行二维中值滤波,领域为MN,缺省值为33
(2)利用拉氏算子锐化图像, 如:
i=imread(‘e:\w01.tif’);
j=double(i);
h=[0,1,0;1,-4,0;0,1,0];%拉氏算子
k=conv2(j,h,‘same’);
实验内容
1、采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3 * 3,5 * 5,7 * 7
close all;clear all;clc;i=imread('图像平滑.png');i=rgb2gray(i);j=imnoise(i,'salt & pepper',0.04); %模拟叠加密度为0.04的椒盐噪声k1=medfilt2(j,[3 3]);%对矩阵i进行二维中值滤波,领域3*3k2=medfilt2(j,[5 5]);k3=medfilt2(j,[7 7]);subplot(2,2,1);imshow(j);title('原图像');subplot(2,2,2);imshow(k1);;title('3 3');subplot(2,2,3);imshow(k2);title('5 5');subplot(2,2,4);imshow(k3);title('7 7');
2、采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波
close all;clear all;clc;i=imread('图像平滑.png');i=rgb2gray(i);j=imnoise(i,'salt & pepper',0.04); %模拟叠加密度为0.04的椒盐噪声k1=filter2(fspecial('average',9),j)/255;subplot(2,2,1);imshow(j);title('噪声干扰图像');subplot(2,2,2);imshow(k1);;title('改进后的图像');
3、采用三种不同算子对图像进行锐化处理
close all;clear all;clc;i=imread('图像平滑.png');i=rgb2gray(i);j=fspecial('sobel');%应用Sobel算子k1=filter2(j,i);%Sobel算子滤波锐化j=fspecial('prewitt');%应用prewitt算子k2=filter2(j,i);%prewitt算子滤波锐化j=fspecial('log');%应用log算子k3=filter2(j,i);%log算子滤波锐化subplot(2,2,1);imshow(i);title('原图像');subplot(2,2,2);imshow(k1);;title('Sobel算子锐化图像');subplot(2,2,3);imshow(k2);title('prewitt算子锐化图像');subplot(2,2,4);imshow(k3);title('log算子锐化图像');
总结
比较不同平滑滤波器的处理效果,分析其优缺点
中值滤波器对去除椒盐噪声可以起很好的效果,因为椒盐噪声在画面中的部分点上随机出现.所以根据中值滤波可知,通过数据排列的方法,将图像中未被噪声污染的点代替噪声点的值的概率比较大,因此噪声的抑制效果好.均值滤波器对图像处理能达到去噪的效果,并且滤波器的模板越大去噪效果越好,但模板选择过大时,处理的效果会下降.二者相比,中值滤波去图像椒盐噪声的同时,还能保持图像清晰的轮廓.
比较不同锐化滤波器的处理效果,分析其优缺
Sobel算子是滤波算子的形式来提取边缘,X,Y方向各用一个模板,两个模板组合起来构成一个梯度算子。X方向模板对垂直边缘影响最大,Y方向模板对水平边缘影响最大。prewitt算子是加权平均算子,对噪声有抑制作用,但是像素平均相当于对图像进行的同滤波.log算法的特点是由于先进行了高斯滤波,因而可以一定程度上克服噪声的影响。但可能产生假边缘,对一些曲线边缘(curved edges)的定位误差较大