【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プロパティ […]