2016-04-27 3 views
1

AForge.NETフレームワークは、数学的形態からフィルタのセットを提供します。すべてのフィルタは、カスタム指定の構造化要素を使用する場合と同様に、デフォルトの構造化要素を使用するように適用できます。Aforge.netで5 * 5の構造要素のDilationを使用してコードを作成するにはどうすればよいですか?

フィルタでは、フィルタは結果画像の各ピクセルに周囲のピクセルの最大値を割り当てます。処理されるべき周囲のピクセルは、要素を構造化することによって指定される:1 - 近隣を処理するために-1をスキップする。

フィルタは、バイナリ画像処理に特に役立ちます。このフィルタは、別々のオブジェクトを成長させたり、オブジェクトを結合したりすることができます。

3x3構造要素を使用して画像を処理する場合、Dilatation3x3やBinaryDilatation3x3のように異なる最適化が利用できます。

このフィルタは、8,16 bppのグレースケール画像と24と48 bppのカラー画像を処理できます。

これは3 * 3構造要素のためのコードです:

Dilatation filter = new Dilatation(); 
filter.Apply(image); 

しかし、私は5 * 5の構造要素を使用してこのコードを実装する必要があります。このコードを5 * 5の構造要素に変更するにはどうすればよいですか?

答えて

2

私はAForge.NET枠組みを知らないが、寸法5×5の浸食/拡張は寸法の2侵食/膨張演算処理と同じです3x3。これは、ライブラリでサポートされている六角形の構造要素で行われます。

あなたの場合、操作を2回適用するだけです。あなたのコードによれば、それは次のようになります:

Dilatation filter = new Dilatation(); 
filter.Apply(image); 
filter.Apply(image); 
2

Dilatationフィルタを作成して、カスタム構造要素をspec'd hereとして渡すことができます。あなたがしたい構造要素は、以下の構造を持つ2次元のint配列である:

new short[5,5]{ 
{ 1,1,1,1,1 }, 
{ 1,1,1,1,1 }, 
{ 1,1,1,1,1 }, 
{ 1,1,1,1,1 }, 
{ 1,1,1,1,1 }, 
} 
+0

ありがとう!その2X2を作るのを助けた – CyC0der