我做了这个代码可以任何人告诉我这是对的如何验证它。
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
答案 0 :(得分:1)
一般来说,你能发现它是否符合预期的唯一方法就是尝试它是否有效。 @Maroun已经描述了这一点。
以下是我注意到的一些事情:
我认为代码没有任何技术问题。
我不是这个主题的专家,但如果您在确定中位数时不想考虑中间点I(i,j)
,我会感到惊讶。现在你只需向上和向下检查左右。除此之外,你可能想要评估竖直向下和向下。然而,这是一个选择。
另一件需要注意的事情是,目前您的结果将小于原始图像。您可能希望从J=I
或J = NaN(size(I));