MATLAB自编均值和中值滤波实验报告.doc

上传人:仙人指路1688 文档编号:3931938 上传时间:2023-03-28 格式:DOC 页数:3 大小:160KB
返回 下载 相关 举报
MATLAB自编均值和中值滤波实验报告.doc_第1页
第1页 / 共3页
MATLAB自编均值和中值滤波实验报告.doc_第2页
第2页 / 共3页
MATLAB自编均值和中值滤波实验报告.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《MATLAB自编均值和中值滤波实验报告.doc》由会员分享,可在线阅读,更多相关《MATLAB自编均值和中值滤波实验报告.doc(3页珍藏版)》请在三一办公上搜索。

1、实验二 数字图像的空间域滤波一、实验目的1、 理解图像空间域滤波的原理;2、 掌握图像均值滤波、中值滤波的原理与实现方法;3、掌握上述方法的改进方法。二、 实验原理均值滤波的主要步骤为:(1) 将模板在途中漫游,并将模板中心与途中某个象素位置重合;(2) 将模板上系数与模板下对应象素相乘;(3) 将所有乘积相加;(4) 将和(模板的输出响应)赋给途中对应模板中心位置的象素。中值滤波的主要步骤为:(1)将模板在途中漫游,并将模板中心与途中某个象素位置重合;(2)读取模板下各对应象素的灰度值;(3)将这些灰度值从小到大排成1列;(4)找出这些值里排在中间的1个;(5)将这个中间值赋给对应模板中心位

2、置的象素。三、 实验内容基本要求:1、 自己编程实现图像的均值滤波;2、 自己编程实现图像的中值滤波;3、 利用matlab图像处理工具箱中的函数实现图像的上述处理;扩展要求:4、 实现一种图像加权中值滤波或加权均值滤波;四、 实验步骤1、 编程实现图像的均值滤波程序代码:h=imread(444.jpg); %读入彩色图片c=rgb2gray(h); %把彩色图片转化成灰度图片,256级figure,imshow(c),title(原始图象); %显示原始图象g=imnoise(c,gaussian,0.1,0.002); %加入高斯噪声figure,imshow(g),title(加入高斯

3、噪声之后的图象);Y2=avefilt(g,3); %调用自编函数进行均值滤波,n为模板大小figure,imshow(Y2),title(用自己的编写的函数进行均值滤波之后的结果);Y4=midfilt(g,3); %调用自己编写的函数进行中值滤波,figure,imshow(Y4),title(用自己编写的函数进行中值滤波之后的结果);自己编写的脚本代码均值滤波function d=avefilt(x,n) a(1:n,1:n)=1; %a即nn模板,元素全是1p=size(x); %输入图像是pq的,且pn,qnx1=double(x);x2=x1;%A(a:b,c:d)表示A矩阵的第a

4、到b行,第c到d列的所有元素for i=1:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1).*a; %取出x1中从(i,j)开始的n行n列元素与模板相乘 s=sum(sum(c); %求c矩阵(即模板)中各元素之和 x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n); %将模板各元素的均值赋给模板中心位置的元素 endend%未被赋值的元素取原值d=uint8(x2);中值滤波function d=midfilt(x,n) p=size(x); %输入图像是pq的,且pn,qnx1=double(x);x2=x1;for i=1

5、:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1); %取出x1中从(i,j)开始的n行n列元素,即模板(nn的) e=c(1,:); %是c矩阵的第一行 for u=2:n e=e,c(u,:); %将c矩阵变为一个行矩阵 end mm=median(e); %mm是中值 x2(i+(n-1)/2,j+(n-1)/2)=mm; %将模板各元素的中值赋给模板中心位置的元素 endend %未被赋值的元素取原值d=uint8(x2);程序运行截图五、 实验结果分析从实验结果可以看出,中值滤波较均值滤波效果好些,并且滤波与所选的模板有关,若选择权值相同(本实验为0.1/9)相对不同权值的效果好些。模板的不同对均值滤波的影响较大。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号