昆明理工大学信息工程与自动化学院学生实验报告
(2016—2017学年第一学期)
课程名称:数字图像基础 开课实验室:445 2016年11月 28日 年级、专业、物联网141 学号 201410410148 姓名 班 实验项目名称 图像增强(2) 教师评语 2016年 12月 6日 一、实验目的及内容
目的:掌握和熟悉空域滤波的基本原理及方法。 内容:
1. 调试教材P47页例2.8,掌握函数imfilter的使用。
2. 调试教材P53页例2.11。可以看出中心为-8的拉普拉斯滤波器得到的结果比中心为
-4的拉普拉斯滤波器更清晰,基于这个例子完成下一题。
3. 写一个M函数,该函数生成任意奇数尺寸的拉普拉斯滤波器,拉普拉斯滤波器的边
长由该函数的参数n指定。例如n=3时生成上题中中心为-8,周围为1的3×3拉普拉斯滤波器;若n=5,则生成中心为-24,周围为1的5×5的拉普拉斯滤波器。 4. 使用上题的函数,分别采用n=3,5,9,15和25得到的5个拉普拉斯滤波器对教
材P53页图2.18(a)进行拉普拉斯锐化处理,并比较结果。
5. (1)调试教材P54页例2.12;(2)学习教材P53页ordfilt2函数的使用,利用ordfilt2
函数分别实现一个3×3邻域的最小滤波器、中值滤波器和最大滤波器,并对教材
-1-
游江川 成绩 指导教师 尚振宏 A.了解□ A.强□ A.达到□ A.规范□ A.详细□ B.基本了解□ C.不了解□ B.中等 □ C.差 □ B.基本达到□ C.未达到□ B.基本规范□ C.不规范□ B.一般 □ C.没有 □ 该同学是否了解实验原理: 该同学的实验能力: 该同学的实验是否达到要求: 实验报告是否规范: 实验过程是否详细记录: 教师签名:尚振宏 P54页图2.19(b)的噪声图像进行去噪处理,比较三个非线性滤波器的去噪效果。 二、要求
1. 对于程序调试题,在报告中给出调试运行的代码及运行结果,并对运行结果进行说
明。
2. 对于程序设计题(第3、4题),在报告中描述程序的设计思想、实现(代码)和结
果,并对结果进行分析。
3. 程序的源代码及实验报告的电子版,打包后于12月4日(周日)晚上0点前发送
到马颢瑄同学邮箱:mahaoxuan123@qq.com
三、结果 1.代码:
f=imread('C:\\Documents and Settings\\student\\桌面\\test4\\Fig0216(a).tif');
f=im2double(f); subplot(2,3,1); imshow(f); title('a'); w=ones(31);
gd=imfilter(f,w); subplot(2,3,2); imshow(gd,[]); title('b');
gr=imfilter(f,w,'replicate'); subplot(2,3,3); imshow(gr,[]); title('c');
gs=imfilter(f,w,'symmetric'); subplot(2,3,4); imshow(gs,[]); title('d');
gc=imfilter(f,w,'circular'); subplot(2,3,5); imshow(gc,[]); title('e'); f8=im2uint8(f);
g8r=imfilter(f8,w,'replicate'); subplot(2,3,6); imshow(g8r,[]);
-2-
title('f');
实验结果:
2.代码:
f=imread('C:\\Documents and Settings\\student\\桌面\\test4\\moon1.tif'); w4=fspecial('laplacian',0); w8=[1 1 1;1 -8 1;1 1 1]; f=tofloat(f);
g4=f-imfilter(f,w4,'replicate'); g8=f-imfilter(f,w8,'replicate'); subplot(1,3,1); imshow(f); title('a'); subplot(1,3,2); imshow(g4); title('b'); subplot(1,3,3); imshow(g8); title('c');
实验结果:
-3-
3.设计:先创建申请n个的全1矩阵,中心位置用四舍五入法的ceil函数,然后用-1*(n*n-1)公式算出中心位置的值 代码:
function gn = laplaciann(f,n)
%UNTITLED3 Summary of this function goes here % Detailed explanation goes here
f=imread('C:\\Documents and Settings\\student\\桌面\\test4\\moon1.tif'); w=ones(n); x=ceil(n/2);
w(x,x)=-1*(n*n-1);
gn=f-imfilter(f,w,'replicate'); subplot(1,2,1); imshow(f);
subplot(1,2,2); imshow(gn); end
实验结果:
-4-
4. n=3 n=5 n=9
-5-