ImageData Class

【ImageDataクラス】BorderTypeプロパティ

ImageDataクラスでは、C#のインデクサという機能を使って、new したImageDataクラスをオブジェクトをあたかも配列かのように扱うことができます。

 

インデクサの例

var img = new ImagingSolution.Imaging.ImageData("image.bmp");
var bright = img[2, 5];

のようにするだけで画像の輝度値を取得することができます。

 

インデクサを用いると、配列ではできない

var bright = img[-1, -1];

のように配列の添え字に相当する部分にマイナスの値を指定することもできます。

 

このインデクサの機能を使って、画像のフィルタ処理で、画像の外周部分において、画像の外側の輝度値を参照する方法をBorderTypeプロパティにより設定を行います。

 

3×3フィルタにおいて、画像の外側を参照してしまう例

BorderTypeプロパティ

 

設定はBorderTypeEnum列挙型を指定します。

 

BordeTypeEnum.Mirrorの場合(初期値)

画像の輪郭部分を基準に折り返すように輝度値を参照します。

BorderTypeプロパティ

img[-1, -1]の値は130となります。

 

BordeTypeEnum.Clampの場合

画像の輪郭部分の輝度値に固定し参照します。

 

BorderTypeプロパティ

img[-1, -1]の値は71となります。

 

BordeTypeEnum.ToZeroの場合

画像の外側の輝度値を0にします。

BorderTypeプロパティ

img[-1, -1]の値は0となります。

 

ImageDataクラスライブラリへ戻る

コメント

  1. […] 3/19 【ImageDataクラス】BorderTypeプロパティ […]

  2. […] 3/19 【ImageDataクラス】BorderTypeプロパティ […]

  3. […] 3/19 【ImageDataクラス】BorderTypeプロパティ […]

  4. […] 3/19 【ImageDataクラス】BorderTypeプロパティ […]

タイトルとURLをコピーしました