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

来源:百度知道 编辑:UC知道 时间:2024/05/24 14:51:05
注意:老师要求不要用medfilt2这个函数。。。而是要运用冒泡法给像素排序再输出。说白了就是用其他编程语言取代medfilt2,前面的程序如下:
x=imread('2_5.tif').*255;
y=uint8(x);
u1 = imnoise(y,'salt & pepper', 0.02);
后面的用冒泡法编来取代medfilt2
谁会啊 高手们 急求…………………… 注意是冒泡法
回答正确我的追加100分!~~~

x=imread('2_5.tif');
y=uint8(x);
u1 = imnoise(y,'salt & pepper', 0.02);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));