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)の計算方法
画像を拡大や回転する場合など、画像の画素と画素の間の輝度値を参照する必要が出てきますが、その参照方法を紹介します。 この画素を画素の間を参照する事を一般に補間や内挿(Interpolation)と言います。 最近傍補間(ニアレストネイバー ...
この補間方法に有名どころで、Nearest neighor、Bilinear、Bicubicの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は処理が重いです...
コメント
[…] 3/19 【ImageDataクラス】InterpolationModeプロパティ […]
[…] 3/19 【ImageDataクラス】InterpolationModeプロパティ […]
[…] 3/19 【ImageDataクラス】InterpolationModeプロパティ […]