数字信号处理matlab实验报告 - 图文 联系客服

发布时间 : 星期一 文章数字信号处理matlab实验报告 - 图文更新完毕开始阅读

点都被污染,无法找到足够多的为被噪声干扰的点来消除中心点噪声

2、(选做题,20分)设计KNN(K=5, 滤波器大小3*3)均值滤波器对上面两副图进行滤波处理,并简述实验结果不同与一般均值滤波器器的处理结果的原因。

_计算机__学院 网络工程 专业_3___班 学号 3116005027

姓名 杨铠光 教师评定__________________ 实验题目___________数字信号处理实验_____________ 实验五、二维信号高通滤波、三维图像处理 一、实验目的

1、熟悉二维高通滤波器的设计过程。

8

2、能够边缘需求不同,设计不同的高通滤波器器进行滤波处理。 3、熟悉Matlab图像处理工具的一般操作。

二、实验环境

Matlab图像处理工具箱。

三、实验内容

1、设计水平和垂直方向及Sobel高通滤波器对Building.tif与Cups.tif进行处理,并简述实验结果不同的原因。(自己编写卷积过程的加10分)

图1 Building.tif 图2 Cups.tif

1) 实现函数(sharpen_filter.m) %3*3 锐化实现函数

function result = sharpen_filter( picture ,type) switch type case 'hori'

dx=[1 2 1;0 0 0;-1 -2 -1] d=0 case 'vert'

dx=[1 0 -1;2 0 -2;1 0 -1] d=0; case 'sobel'

dx=[-1 0 1;-2 0 2;-1 0 1] dy=[-1 -2 -1;0 0 0 ;1 2 1] end

[height, width]=size(picture); %输入图像是hight x width x1=double(picture); x2=x1;

for i=1:height-2%最后一列不用计算 for j=1:width-2%最后一行不用计算

c=x1(i:i+2,j:j+2).*dx;%取出x1中从(i,j)开始的n行n列元素与模板相乘 c=sum(sum(c)); %求c矩阵中各元素之和 if c>255 c=255; end

9

if strcmp(type,'sobel')

d=x1(i:i+2,j:j+2).*dy;%取出x1中从(i,j)开始的n行n列元素与模板相乘 d=sum(sum(d)); %求d矩阵中各元素之和 if d>255 d=255; end end

x2(i+1,j+1)=round((c^2+d^2)^(1/2)); %将与两模板运算后值赋给模板中心位置的元素 end end

%为被赋值的元素取原值 result=uint8(x2); end

2) 测试

image=imread(' C:\\Users\\yangk\\Desktop\\666\\Building.tif');%读取图片 imshow(image)%显示原图 title('原图') figure

k=sharpen_filter(image,'hori');%水平锐化 imshow(k),title('水平锐化处理图') figure

k=sharpen_filter(image,'vert');%水平锐化 imshow(k),title('垂直锐化处理图') figure

k=sharpen_filter(image,'sobel'); imshow(k),title('Sobel锐化处理图') 3) 结果

10

4) 实验结果不同的原因:由名字可知,水平锐化和垂直锐化各自锐化注重的方向不一样,水平锐化注重水平方向,所以水平方向锐化效果好,垂直锐化注重垂直方向,所以垂直方向锐化效果好,而Sobel锐化水平垂直方向都进行了锐化,故两个方向都锐化效果明显

11

2、设计非线性扩散滤波器对CT图像进行处理,使得低质量图像尽量逼近高质量图像。

12