我做了这个代码,谁能告诉我这是对的,我怎么验证它
I=imread('cameraman.tif');
[M N]=size(I);
for i=2:M-1
for j=2:N-1
x=I(i-1,j);
y=I(i+1,j);
z=I(i,j-1);
zz=I(i,j+1);
A=[x y z zz];
J(i,j)=median(A);
end
end
一般来说,您可以发现它是否按照您的期望工作的唯一方法是尝试它是否工作。@Maroun已经描述过了。
以下是我注意到的一些事情:
-
我相信代码没有技术问题。
-
我不是这个话题的专家,但如果你在确定中位数时不想考虑中点
I(i,j)
,我会感到惊讶。现在你只需要检查左右上下。除此之外,你可能想要评估上下左右和彻底。 -
另一件要注意的事情是,目前你的结果将比原始图像小。也许你想从
J=I
或J = NaN(size(I));
开始