-1

我制作了这段代码,任何人都可以告诉我这是正确的,我该如何验证它。

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
4

1 回答 1

1

一般来说,你可以发现它是否达到你期望的唯一方法是尝试它是否有效。@Maroun 已经描述了这一点。

以下是我注意到的一些事情:

  • 我相信代码没有技术问题。

  • I(i,j)我不是该主题的专家,但如果您在确定中位数时不想考虑中间点,我会感到惊讶。现在你只需检查左右上下。除此之外,您可能需要评估 upleft upright downleft 和 downright。然而,这是一个选择。

  • 需要注意的另一件事是,目前您的结果将小于原始图像。可能你想从J=IJ = NaN(size(I));

于 2013-03-07T14:42:52.200 回答