将每个像素替换为其4个邻域的中位数



我做了这个代码,谁能告诉我这是对的,我怎么验证它

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=IJ = NaN(size(I));

  • 开始

最新更新