早教吧 育儿知识 作业答案 考试题库 百科 知识分享

matlab中位数图像处理clearall;clc;A=imread('abc.jpg');B=rgb2gray(A);C=imnoise(B,'salt&pepper',0.2);E=im2double(C);imshow(E)fori=2:710forj=2:1000form=i-1:i+1forn=j-1:j+1forx=1:9D(x)=C(m,n);endendendfork=1:9forh=k+1:9ifD(k)>D(h)t=D(k)

题目详情
matlab中位数图像处理
clear all;
clc;
A=imread('abc.jpg');
B=rgb2gray(A);
C=imnoise(B,'salt & pepper' ,0.2);
E=im2double(C);
imshow(E)
for i=2:710
for j=2:1000
for m=i-1:i+1
for n=j-1:j+1
for x=1:9
D(x)=C(m,n);
end
end
end
for k=1:9
for h=k+1:9
if D(k)>D(h)
t=D(k);
D(k)=D(h);
D(h)=t;
end
end
end
C(i,j)=D(5);
end
end
figure(2);
imshow(C);
加噪后进行处理为什么多大变化?
中间先是一个大循环.然后是寻找中位数.再赋值.老师规定要中位数.3*3平均数做出来挺好的,中位数就不行了
▼优质解答
答案和解析
木有看懂你的中间大循环是在做什么,但是觉得你可能某些步骤出错了.而matlab提供了一个叫做median filter的东西来进行中值滤波,直接调用内置函数吧孩子.
一定要自己排序么?如果不是的话调用内置函数吧,matlab提供中值滤波的函数的,直接调用函数就好了.