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

BorderTypeプロパティではインデクサをつかって

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

のように配列の添え字に相当する部分に負の値を設定すると、画像の外側の輝度値(画素値)を参照できるのを紹介しました。

だったら、添え字相当の部分に少数も指定できるんじゃね?!的な発想で画素間の輝度値を取得できるようにしています。

 

下記のコード例ではX座標が1.3、Y座標が2.7の位置を輝度値を取得しています。

var img = new ImagingSolution.Imaging.ImageData("image.bmp");
var bright = img[2.7f, 1.3f];

 

この画素と画素の間の輝度値を周りの画素の輝度の値から算出する方法を補間というのですが、詳細は下記ページを参照ください。

画素の補間(Nearest neighbor,Bilinear,Bicubic)の計算方法

 

この補間方法に有名どころで、Nearest neighorBilinearBicubicの3があり、この補間方法をInterpolationMonoプロパティにInterpolationModeEnumで指定します。

Bilinearが初期値で設定されています。

 

コード例

var img = new ImagingSolution.Imaging.ImageData("image.bmp");

////////////////////////////////////////////////////
// 下記のいづれかを指定します
// NearestNeighbor
img.InterpolationMode = ImagingSolution.Imaging.ImageData.InterpolationModeEnum.NearestNeighbor;
// Bilinear(初期値)
img.InterpolationMode = ImagingSolution.Imaging.ImageData.InterpolationModeEnum.Bilinear;
// Bicubic
img.InterpolationMode = ImagingSolution.Imaging.ImageData.InterpolationModeEnum.Bicubic;
////////////////////////////////////////////////////
// 取得する輝度値
var bright = img[2.7f, 1.3f];

ただし、Bicubicは処理が重いです...

 

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

 

【ImageDataクラス】InterpolationModeプロパティ」への3件のフィードバック

  1. ピンバック: 【ImageDataクラス】画像の輝度値(画素値)の取得/設定 | イメージングソリューション

  2. ピンバック: 【C#】ImageDataクラスライブラリ公開 | イメージングソリューション

  3. ピンバック: ImageDataクラスライブラリ | イメージングソリューション

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください