利用matlab给图像进行中值滤波...

利用matlab给图像进行中值滤波...,第1张

x=imread('2_5tif');

y=uint8(x);

u1 = imnoise(y,'salt & pepper', 002);figure,imshow(uint8(u1));

[h w]=size(x);

for i=2:h-1

for j=2:w-1

y1=u1(i-1:i+1,j-1:j+1);%取3x3窗口

y1=reshape(y1,1,9);

for m=1:9

for n=m+1:9

if y1(n)>y1(m)

t=y1(n);y1(n)=y1(m);y1(m)=t;

end

end

end

u1(i,j)=y1(5);

end

end

figure,imshow(uint8(u1));

'中值滤波:

Dim x As Integer, y As Integer, size As Integer = 3, point(8) As Integer

For x = CInt((size - 1) / 2) To CInt(jpgImageWidth - 1 - (size - 1) / 2)

For y = CInt((size - 1) / 2) To CInt(jpgImageHeight - 1 - (size - 1) / 2)

point(0) = jpgImageGetPixel(x - 1, y - 1)R

point(1) = jpgImageGetPixel(x - 1, y)R

point(2) = jpgImageGetPixel(x - 1, y + 1)R

point(3) = jpgImageGetPixel(x, y - 1)R

point(4) = jpgImageGetPixel(x, y)R

point(5) = jpgImageGetPixel(x, y + 1)R

point(6) = jpgImageGetPixel(x + 1, y - 1)R

point(7) = jpgImageGetPixel(x + 1, y)R

point(8) = jpgImageGetPixel(x + 1, y + 1)R

ArraySort(point)

jpgImageSetPixel(x, y, ColorFromArgb(point(4), point(4), point(4)))

Next

Next

可以告诉你方法:算数平均滤波,就是求出k次采样值的总和,再除以k;中值滤波法,是把k个采样值按照从小到大排列顺序,然后找到位于最中间的那个值;最后一种不知道你们老师的防脉冲是什么意思,猜测可能是去掉k次采样值中大于或小于某个值,剩余值求平均数。

让别人免费给你写程序基本上不可能,这个得花时间和精力。

1、阅读,以pouttif为例,加上盐和胡椒噪音。

2、分别建立3×3高斯滤波器模板和平均滤波器模板,并对经过噪声添加的图像进行滤波。显示原始图像,噪声图像和由高斯和平均模板过滤的图像。

3、结果如图所示。可以看出,平均模板滤波后的噪声非常明显。高斯模板滤波的噪声影响相对较小。

4、之后我们选择输入代码进行过滤,并显示处理后的图像。

5、中值滤波图像基本上不显示噪声的影响。效果如下。

中值滤波楼上答了,55的均值滤波代码 w2=fspecial('average',[5 5]); %% 先定义一个滤波器 h=imfilter(a,w2,'replicate'); %%让图像通过滤波器 imshow(h); imwrite(h,'8jpg');

均值滤波是

I=medfilt2(a,[3 3],'symmetric')

可以在matlab中查询medfilt函数的用法,本例是使用33的滤波器采用镜像边界法做均值滤波。

以上就是关于利用matlab给图像进行中值滤波...全部的内容,包括:利用matlab给图像进行中值滤波...、vb.net 实现高斯滤波\中值滤波\均值滤波的一种 需求vb.net程序,实现对图像的滤波处理,以上任意一种均可、怎样写数字滤波程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10216799.html

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

发表评论

登录后才能评论

评论列表(0条)

保存