濃度補間方法

Namespace: FVIL.GeoTrans
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
public enum SamplingMode
Visual Basic
Public Enumeration SamplingMode

Members

Member nameValueDescription
NearestNeighbor1最近傍法
Bilinear2共一次線形補間法
Cubic4三次畳み込み法
Lanczos8Lanczos-windowed Sinc function を使用した濃度補間法
Super16Super-sampling 法
Adapt32Adaptive Super-sampling 法

Remarks

幾何変換で使用可能な濃度補間方法を示す定数を定義します。 幾何変換クラスによって使用できない補間方法もあります。 下表に使用可否の対応を示します。(◎ は可、× は不可を示します)

定数アフィン変換
(CFviAffine)
射影変換
(CFviPerspective)
平行移動
(CFviShift)
NearestNeighbor
Bilinear
Cubic
Lanczos××
Super××
Adapt××

これら6手法のうち、NearestNeighbor, Bilinear, Cubic の3手法は、拡大率が 1.0 以上の場合に適した手法です。 拡大率が 1.0 未満になる変換の時(つまり縮小をする時)には、 これらの手法はエイリアシング(aliasing)現像を起こします。 このエイリアシング(aliasing)現像を抑制するため、Lanczos, Super, Adapt の3種類のアンチエイリアシング(antialiasing)手法を用意しています。 これらの手法は処理時間がかかりますが、美しい結果画像を得ることが出来ます。

■各補間法によるエイリアシングの違い(1/3に縮小した例)


FVIL.GeoTrans.SamplingMode.NearestNeighbor:

最近傍法は、各補間法の中で最も高速ですが、最も精度が低い方法です。 濃度値は(x,y)を単純に丸めた座標( (int)(x+0.5), (int)(y+0.5) ) の濃度値が使用されます。


FVIL.GeoTrans.SamplingMode.Bilinear:

共一次線形補間法は、最近傍法よりは低速で、精度の良い方法です。 一方、三次畳み込み法よりは高速で、精度は低くなります。 この方法では、(x,y) の周囲4点の濃度値 D(u,v), D(u+1,v), D(u,v+1), D(u+1,v+1) を使用して、 次の式で濃度値を決定します。




FVIL.GeoTrans.SamplingMode.Cubic:

三次畳み込み法は共一次線形補間法より低速で、精度の良い方法です。 この方法では、(x,y) の周囲16点の濃度値を使用して、次の式で濃度値を決定します。






FVIL.GeoTrans.SamplingMode.Lanczos:

Lanczos 法 は Lanczos-windowed Sinc 関数を使って補間係数を計算します。 畳み込みを行うウインドウサイズは、縮小比率より自動的に決定されます。


FVIL.GeoTrans.SamplingMode.Super:

Super-sampling 法は、変換する時に各ピクセルをさらに細かいサブピクセルに分解して、 それぞれのサブピクセルの明るさの平均値をピクセル値として適用する方法です。 平均値を取るサブピクセル数は縮小比率によって内部で自動的に決定します。


FVIL.GeoTrans.SamplingMode.Adapt:

Adaptive Super-sampling 法は、Super-sampling 法とほぼ同じですが、 Super-sampling 法が縮小率を画像全体で一意に決定するのに対して、 Adaptive Super-sampling 法は、画素毎に縮小率を計算し、サンプル数を適応的に決定する点が異なります。 但し、対象画素の縮小率が 1.5 以下となる場合には、共一次線形補間法をその画素に対して使用します。

See Also