matlab自带的滤波器有哪些??

matlab自带的滤波器有哪些??,第1张

1线性平滑滤波器

用MATLAB实现领域平均法抑制噪声程序:

I=imread(' c4.jpg ')

subplot(231)

imshow(I)

title('原始图像')

I=rgb2gray(I)

I1=imnoise(I,'salt &pepper',0.02)

subplot(232)

imshow(I1)

title(' 添加椒盐噪声的图像')

k1=filter2(fspecial('average',3),I1)/255 %进行3*3模板平滑滤波

k2=filter2(fspecial('average',5),I1)/255 %进行5*5模板平滑滤波k3=filter2(fspecial('average',7),I1)/255 %进行7*7模板平滑滤波

k4=filter2(fspecial('average',9),I1)/255 %进行9*9模乱基板平滑滤波

subplot(233),imshow(k1)title('3*3 模板平滑滤波')

subplot(234),imshow(k2)title('5*5 模板平滑滤波')

subplot(235),imshow(k3)title('7*7 模板平滑滤波')

subplot(236),imshow(k4)title('9*9 模板平滑滤波')

2.中值滤波器

用MATLAB实现中值滤波程序如下:

I=imread(' c4.jpg ')

I=rgb2gray(I)

J=imnoise(I,'salt&pepper',0.02)

subplot(231),imshow(I)title('原图像')

subplot(232),imshow(J)title('添加椒盐噪声图像')

k1=medfilt2(J) %进行3*3模板中值滤波

k2=medfilt2(J,[5,5]) %进行5*5模板中值滤波

k3=medfilt2(J,[7,7]) %进行7*7模板中值滤波

k4=medfilt2(J,[9,9]) %进行9*9模板中值滤波

subplot(233),imshow(k1)title('3*3模板中值滤波')

subplot(234),imshow(k2)title('5*5模板中值滤波 ')

subplot(235),imshow(k3)title('7*7模板中值滤波')

subplot(236),imshow(k4)title('9*9 模板中值滤波')

3状态统计滤波器:ordfilt2函数

Y=ordfilt2(X,order,domain)

由domain中非0元素指定邻域的排序集中的第order个元素代替X中的每个元素。Domain是一个仅包括0和1的矩阵,1仅定义滤波运算的邻域。

Y=ordfilt2(X,order,domain,S)

S与domain一样大,用与domain的非0值相应的S的值作为附加补偿。

4二维自适应除噪滤波器:wiener2函数

wiener2函数估计颂运每个像素的局部均值与方差,该函数用法如下:

J=wiener2(I,[M N],noise)

使用M×N大小邻域局部图像均值与偏差,采用像素式自适应滤波器对图像I进行滤波。

[J,noise]=wiener2(I,[M N])

滤波前还有估计附加噪声的能量。

5.特定区域滤波

MATLAB图像处理工具箱中提供的roifilt2函数用于对特定区域进行滤波,其语法格式为:

J=roifilt2(h,I,BW)

其功能是:使用滤波器h对图像I中用二值掩模BW选中的区域滤波。

J=roifilt2(I,BW,fun)

J=roifilt2(I,BW,fun,P1,P2,…)

其功能是:对图像I中用二值掩模BW选中的区域作函数运算fun,其中fun是描述函数运算的字符串,参数为P1、P2、…。返回图像J在选中区域的像素为图像I经fun运算的结果,其余部分的像素值为I的原始值。野陪梁

例:对指定区域进行锐化滤波的程序清单:

I=imread('eight.tif')

c=[222 272 300 272 222 194]

r=[21 21 75 121 121 75]

BW=roipoly(I,c,r)

h=fspecial('unsharp')

J=roifilt2(h,I,BW)

subplot(1,2,1)imshow(I)

subplot(1,2,2)imshow(J)

由运行结果可知:右上角的硬币发生了变化,而其他硬币保持不变。

%卡尔曼滤波

clear

N=800

w(1)=0

w=randn(1,N)

%系统预测的随机拦肢白噪声

x(1)=0

a=1

for

k=2:N

x(k)=a*x(k-1)+w(k-1)

%系统的预测值

end

V=randn(1,N)

%测量顷衡咐值的随机白噪声

q1=std(V)

Rvv=q1.^2

q2=std(x)

Rxx=q2.^2

q3=std(w)

Rww=q3.^2

c=0.2

Y=c*x+V

%测量值

p(1)=0

s(1)=0

for

t=2:N

p1(t)=a.^2*p(t-1)+Rww

%前一时刻X的相关系数

b(t)=c*p1(t)/(c.^2*p1(t)+Rvv)

%卡尔曼增益

s(t)=a*s(t-1)+b(t)*(Y(t)-a*c*s(t-1))

%经过滤波后的信雀纯号

p(t)=p1(t)-c*b(t)*p1(t)%t状态下x(t|t)的相关系数

end

figure(1)

plot(x)

title('系统的预测值')

figure(2)

plot(Y)

title('测量值')

figure(3)

plot(s)

title('滤波后的信号')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12307124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存