数字图像处理matlab上机实验 (三)
前言:作为一名图像算法攻城狮,那是在2014年大三下学期,一本深绿色的《数字图像处理》(冈萨雷斯的英文版)出现在自己课桌前。偶然间打开的一扇意外之门,就这样结下了一段不解之缘,那些日子不断上网搜代码的自己,那个刚上机不到二十分钟就把作业提交的自己,早已随往日的岁月飘扬而去。三年的烟酒僧,两年的酱油工,而今只觉脑子越来越不够用,这次决心回炉重造,希望能够通过固本培基,打开思路,话不多说,开始上课! ----2020-7-6
实验3 空域滤波
**一、实验目的 通过本实验使学生掌握使用 MATLAB 对灰度图像进行空域增强的目的,加深对图像空域滤波增强方法的理解。 二、实验原理 本实验是基于数字图像处理课程中的图像变换和增强理论来设计的。 本实验的准备知识:第三章,空域图像增强方法。重点如下: 1、空域滤波技术: 添加噪声命令:imnoise 中值滤波技术,复习教材中的中值滤波技术,自己编程实现中值滤波函数,并用自编的函数开展下列实验。 均值滤波技术,复习教材中的中值滤波技术,自己编程实现中值滤波函数,并用自编的函数开展下列实验。 2、MATLAB下设计滤波器的函数 中值滤波命令:B=medfilt2 (I,[3,3]) %使用3×3中值滤波器对I滤波均值滤波技术: 先定义模板,如 H=1/9*ones(3,3), 或 H=fspecial(‘average’,[3,3]); 然后使用命令 I1=imfilter(I, H)对图像I消噪。 【说明:要求学生先自己编写中值滤波或均值滤波的m函数,加深对这两个滤波器的理解】 三、实验内容 (一 )空域滤波 读入lena_gray.tif文件,进行下列操作: ** (1)将图像添加上椒盐噪声, A_noised=imnoise(A, ‘salt & pepper’, 0.02),同屏显示原图像和加噪图像,说明椒盐噪声的特点;
A=imread(F:Imageslena.bmp); subplot(1,2,1) imshow(A); A_noised=imnoise(A,salt & pepper,0.02); subplot(1,2,2) imshow(A_noised)
(2)设计3×3、5×5,7×7三种模板的算术均值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;
h1=fspecial(average,[3,3]); h2=fspecial(average,[5,5]); h3=fspecial(average,[7,7]); A=imread(F:Imageslena.bmp); A_noised=imnoise(A,salt & pepper,0.02); subplot(2,2,1) imshow(A_noised) subplot(2,2,2) imshow(imfilter(A_noised,h1)) subplot(2,2,3) imshow(imfilter(A_noised,h2)) subplot(2,2,4) imshow(imfilter(A_noised,h3))
(3)设计3×3、5×5,7×7三种模板的中值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;
A=imread(F:Imageslena.bmp); A_noised=imnoise(A,salt & pepper,0.02); B= medfilt2(A_noised,[3 3]); C= medfilt2(A_noised,[5 5]); D= medfilt2(A_noised,[7 7]); subplot(2,2,1) imshow(A_noised) subplot(2,2,2) imshow(B) subplot(2,2,3) imshow(C) subplot(2,2,4) imshow(D)
(4)将图像添加上高斯噪声, A_noised=imnoise(A, ‘gauss’, 0.02),同屏显示原图像和加噪图像,说明高斯噪声的特点;
A=imread(F:Imageslena.bmp); subplot(1,2,1) imshow(A); A_noised=imnoise(A,gauss,0.02); subplot(1,2,2) imshow(A_noised)
(二)使用 MATLAB 环境下的均值滤波和中值滤波函数进行上述图像处理 思考:椒盐噪声和高斯噪声有何不同特点?分别使用何种滤波器消噪效果好?
A=imread(F:Imageslena.bmp); subplot(3,3,1) imshow(A); A_noised =imnoise(A,gauss,0.02); subplot(3,3,2) imshow(A_noised) h1=fspecial(average,[3,3]); h2=fspecial(average,[5,5]); h3=fspecial(average,[7,7]); subplot(3,3,4) imshow(imfilter(A_noised,h1)) subplot(3,3,5) imshow(imfilter(A_noised,h2)) subplot(3,3,6) imshow(imfilter(A_noised,h3)) B= medfilt2(A_noised,[3 3]); C= medfilt2(A_noised,[5 5]); D= medfilt2(A_noised,[7 7]); subplot(3,3,7) imshow(B) subplot(3,3,8) imshow(C) subplot(3,3,9) imshow(D)
四、实验方法与步骤 1、顺序完成上述实验内容 2、按照实验内容要求,分析编程,将程序和实验结果整理成word文档,分析结果,编写实验报告。
本系列文章列表如下: