3x3ウィンドウでメディアンフィルタリングを実行して、画像を操作します。3x3ウィンドウでメディアンフィルタリングを再度実行して、結果の画像を操作します。結果の画像は単一のメディアンフィルタリングから取得できますか?
私の最初の考えは、それは正しいマスクで行うことができるということです。多分中央値の隣の中央値。確信はないけど。
3x3ウィンドウでメディアンフィルタリングを実行して、画像を操作します。3x3ウィンドウでメディアンフィルタリングを再度実行して、結果の画像を操作します。結果の画像は単一のメディアンフィルタリングから取得できますか?
私の最初の考えは、それは正しいマスクで行うことができるということです。多分中央値の隣の中央値。確信はないけど。
回答:
答えはノーだ:
以下の1から81までの数値の再配置を参照してください。左の場合、3x3中央値の3x3中央値は
中央値([77、72、67、62、57、52、47、37])= 57、
正しい場合の中央値
([5、15、23、32、41、50、59、68、77])= 41
一方、9x9ブロック全体の中央値は、どちらの場合も41です。
わかりましたので、ここに私の教授Hagit Hal-orの答えが
あります。そのようなマスクがある場合、それは5x5でなければなりません。
カウンターの例は、これは不可能であることを示しています。
画像の5x5領域について考えてみましょう。値を0 ... 0,1,2 ... 2(12の0と12の2)で埋め
ます。数値をどこに配置しても、この領域の5x5中央値は1になります。
次に、5x5リージョンを構築して、中央値に中央値を適用しても、1が得られないようにします。
次のように設定します。
1 0 0 x x
0 0 0 x x
0 0 0 x x
x x x x x
x x x x x
ここで、xは残りの数値です。
中央値の最初のパスでは、左上の3x3が0に設定されるため、1は「失われ」
、残りの数値を配置する順序によって1が戻されることはありません。したがって、他のすべての
領域の中央値は0または2になります。したがって、中央値の2番目のパスは0と2のみの数値を調べるため、1にはなりません。
助けてくれてありがとう
はい、申し訳ありませんが、中央値の代わりに平均化について話すのは間違っていました。
中央値フィルタリングで何が起こるか見てみましょう。フィルタリングルーチンがTOP行から下の行に画像を処理するとします。また、左から右へとすべての行に入るとします。あなたはそれを任意の順序で進むように定義することができます、それは私がここで説明しようとするその点を変えません。
そのような歩行では、3対3の中央値から来る新しい画像がピクセルごとに作成されます。
1)最初の中央値フィルタリングを実行すると、上から1行目にあるピクセルは2行目(結果の画像)に移動でき、3行目には移動できません(Median 3 on 3は1の距離のピクセルのみを「プッシュ」できるため)。 。
2)2番目のメディアンフィルタリングを実行すると、このピクセルはもう1ステップ下に移動し、3番目のラインに移動します。
しかし、行を上に移動したいピクセルの移動距離はどうでしょうか?たとえば、最初はこのピクセルは5行目にあります。outルーチンは行の上から下に移動するため、このピクセルのこの距離は1で、それ以上ではありません。
そして、これはアルゴリズムの特性です。
ここで、より大きな中央値マスクを使用する必要があります。このようなマスクを使用すると、下から上への移動距離が下から上に長くなります。1ではありません!これは、最初のケースで行ったように、3中央値3を使用してピクセルを移動できない場所にピクセルをもたらします。そして、これはあなたが取る中央値のサイズに関係なく、そのような問題が存在することを意味します。
中央値ルーチンの作業の順序を定義できます。問題が発生しますが、方向は異なります(上から下、左から右)。
MAIN LINE:大きな中央値マスクで同じ作業を行うことは不可能です。ピクセルの移動の自由度が高まるため、3対3の2つの後続の中央値フィルターが適用された場合にそうなります。
まあ、私は十分に明確であったと思います。それについて考える方向です。問題は、私の解決策が実際に画像のprocessindに接続されておらず、アルゴリズムのいくつかの手続き的な機能に接続されていないことです。