Brightness and Contrast (dart E)#
明るさとコントラストは、常に共通の数学的Brightness/Contrast機能の一部として一緒に処理されます。
機能を使用する#
コントラストの調整#
To adjust the contrast, enter a value for the BslContrast
parameter. The parameter's value range is from -1 to 1. By default, the parameter is set to 0 which means that the contrast remains unchanged.
明るさの調整#
To adjust the brightness, enter a value for the BslBrightness
parameter. The parameter's value range is from -1 to 1. By default, the parameter is set to 0 which means that the brightness remains unchanged.
仕組み#
Contrast#
コントラストを調整すると、画像の明るい領域と暗い領域の差の度合いが変わります。適用するコントラストが大きいほど、違いがはっきりします。
カメラはS-curve機能を使用してコントラストを調整します。
これにより、画像のダイナミックレンジを維持しながら、知覚されるコントラストを向上させることができます。
コントラストを高くするにつれ、機能のグラフのS字形は次のようになります。
上の図は、S-Curveモードでコントラストを上げると、次のような効果があることを示しています。
- S字曲線では、開始点と終了点あたりで平坦になり、中央あたりが急勾配になります。その結果、画像の明るい部分と暗い部分のコントラストが低減し、中間調のコントラストが増加します。
- 低入力ピクセル値が小さくなり、高入力ピクセル値が大きくなります。その結果、画像の極端な暗い部分と明るい部分が圧縮され、コントラストがさらに向上します。
- 曲線は常に(0,0)から開始し、(Xmax,Ymax)で終了するため、画像のダイナミックレンジは保持されます。
S-Curveモードで0より低いコントラスト設定を行うと、逆効果の反転Sカーブが生成されます。
明るさ#
明るさを調整すると、色調値を増減して画像を明るくしたり暗くしたりできます。
明るさを調整すると、Brightness/Contrast機能の中心点が移動します。
- 明るさを上げると、中心点が左上に移動します。これは、画像が明るく表示されることを意味します。
- 明るさを下げると、中心点が右下に移動します。これは、画像が暗く表示されることを意味します。
サンプルコード#
/* 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 */
/* Set the Brightness parameter to 0.5 */
errRes = PylonDeviceSetFloatFeature(hdev, "BslBrightness", 0.5);
CHECK(errRes);
/* Set the Contrast parameter to 1.2 */
errRes = PylonDeviceSetFloatFeature(hdev, "BslContrast", 1.2);
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 */
/* Set the Brightness parameter to 0.5 */
errRes = PylonDeviceSetFloatFeature(hdev, "BslBrightness", 0.5);
CHECK(errRes);
/* Set the Contrast parameter to 1.2 */
errRes = PylonDeviceSetFloatFeature(hdev, "BslContrast", 1.2);
CHECK(errRes);
You can also use the pylon Viewer to easily set the parameters.