2009-06-14 4 views
0

私はそのフィルタを行う必要があります、それについての素敵な記事を見つけました(http://www.codersource.net/csharp_image_processing_erosion.aspx)、なぜ値11(on this picture)は値16と19(2番目の行)ではありません。この値はまだ最小値です。数学的形態 - 浸食。それを間違って理解していますか?

+0

どの値が11ですか?この写真にはいくつかの11があります – jitter

答えて

4

グレースケール画像のエロージョンは、構造化要素に従ってピクセルの周りの値の最小値をとります。
2番目の行の要素に十字形の構造化要素を初期値19で配置すると、その近傍は値23(上)、42(左)、255(右)、11 (ダウン)と19(セル自体)。このうち、11は最小値であり、侵食後の値は11です。

0

結果に1つの問題があります。境界が壊されていません。おそらく怠惰のために(構造要素が「端」を越える)

内側の結果の値はうまくいくようです。構造化要素は、現在のピクセルの上下左右のピクセルのみを参照することに注意してください。 11は最小値なので正しいです。

2

マップ機能を使用して各ピクセルの値を変更しています。特定のピクセル(記事の56など)については、新しい侵食値がどのようにすべきか疑問に思っています。だからあなたはその3x3バイナリマスクを取って、それを56ピクセルの中心に置きます。次に、マスクに1つのピクセルがある場合は常に、ネイバーピクセルの最小値をとります。したがって、あなたは最低198(上)、78(下)、32(左隣)、16(右隣)、56、センター自体を取る。明らかに、最小値は16です。したがって、16は56であったものの新しい侵食された値です。これをすべてのピクセルに対して行うだけで、侵食された画像が得られます。クール!追加した質問への

回答:

は、古い画像と新しいものを持っているふり。あなたは古いものだけから新しい値を計算します。したがって、11は新しい価値です。あなたはそれを使用しません。あなたは古い値を使うだけです。 255のピクセルから19の値をとり、最小値は16、255より上の値255

関連する問題