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 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は処理が重いです...
ピンバック: 【ImageDataクラス】画像の輝度値(画素値)の取得/設定 | イメージングソリューション
ピンバック: 【C#】ImageDataクラスライブラリ公開 | イメージングソリューション
ピンバック: ImageDataクラスライブラリ | イメージングソリューション