1
function imOut = medianFilter(imIn,windowWidth)
if mod(windowWidth, 2) == 0
disp('Window has even size');
return
end
imageSize = size(imIn);
imOut = imIn;
windowBreadth = (windowWidth - 1)/2;
for m=windowBreadth+1:imageSize(1) - windowBreadth
for n=windowBreadth+1:imageSize(2) - windowBreadth
t1 = imIn(m-windowBreadth:m+windowBreadth,n-windowBreadth:n+windowBreadth);
t2 = reshape(t1,windowWidth*windowWidth,1);
t3 = median(t2);
imOut(m,n) = t3;
end
end
私の説明:誰かがメジアンフィルタについてこのMATLABコードを理解するのを助けてくれますか?
機能medianFilterを入力として画像(IMIN)をとり、メディアンフィルタ
のウィンドウの幅我々は場合を必要とする理由、私はわからないんだけどその後の文
我々は、我々はimOut
にIMINのすべての値をコピーし、入力画像のサイズを取得し、IMAGESIZEという変数に保存します210
私はすべて失われています
どのようなwindowbreadthですか?幅と幅は同じではありませんか?
ありがとうございました!