Vignetting Correction#
この機能は,pylon ViewerのVignetting Correction機能と連携して動作します。
機能を使用する#
口径食とは、画像の中心に比べて画像の隅が暗くなる現象のことを言います。これはデジタル画像処理ではよく見られる影響です。センサーの端のピクセルが十分な光を受けない場合に発生します。
これは、イメージサークルがセンサーのサイズに比べて小さすぎる場合や、光線がセンサーに適切な角度(センサーの中心に当たるように)で当たらない場合に発生する可能性があります。これの場合、エッジのピクセルのグレー値が低いことを意味します。
これらのアーチファクトを除去するには、pylon Viewerを使用して一連の補正データを作成する必要があります。次の図は、このプロセスを示します。
手順1では、すべての画素の補正値(CV)が計算され、カメラのメモリに保存されます。手順 2では、VignettingCorrectionMode
パラメーターが有効になると、ビネットアーチファクトは直ちに削除されます。アーチファクトを除去するために、補正値を元のピクセル値(OV)に乗算して、改善された画像(Resulting Values、RV)を実現します。
VignettingCorrectionMode
パラメーターを使用すると、補正のオンとオフを切り替えることができます。このパラメーターは、pylon Viewerを使用してビネット補正データを作成しないと使用できません。
また、カメラの仕様が、ビネット補正データを作成した別のカメラの仕様と類似している場合は、この別のカメラのビネット補正データを使用することもできます。これを行うには、次の手順を実行します。その後、VignettingCorrectionLoad
コマンドを実行します。
情報
- 最適な結果を得るには、補正データを作成する前に、光源の初期値やガンマなどの非線形機能をすべて無効にしてください。これらの機能は、あとで再度有効にすることができます。
- カラーカメラでは、補正データを作成する前にベイヤーピクセルフォーマットを選択します。補正データを作成したら、任意のピクセルフォーマットを選択できます。
- ビネット補正を実行するときは、生成された基準画像の隅の部分が中央部より適度に暗くなっていることが重要です。
- ビネットは、使用するレンズ、口径、および焦点距離の影響を受けます。レンズ、口径、または焦点距離を変更する場合は、ビネット補正データの新しいセットを作成する必要があります。
-
BinningSelector
パラメーターがSensor
に設定されているときにビニング係数を変更すると、ビネット補正が無効になります。VignettingCorrectionMode
パラメーターはOff
に設定され、次のいずれかが発生するまで再びOnにすることはできません。- ビニング係数を、ビネット補正を実行した係数にリセットする。
- 新しい係数を使用して再度ビネット補正を実行する。
サンプルコード#
ace 2 および boost R カメラ#
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Turn vignetting correction on */
errRes = PylonDeviceFeatureFromString(hdev, "BslVignettingCorrectionMode", "On");
CHECK(errRes);
/* Load vignetting correction data */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslVignettingCorrectionLoad");
CHECK(errRes);
その他のカメラ#
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Turn vignetting correction on */
errRes = PylonDeviceFeatureFromString(hdev, "VignettingCorrectionMode", "On");
CHECK(errRes);
/* Load vignetting correction data */
errRes = PylonDeviceExecuteCommandFeature(hdev, "VignettingCorrectionLoad");
CHECK(errRes);
pylon Viewerを使用して、パラメーターを簡単に設定することもできます。