産業用カメラに関するFAQ/TeliU3vViewerのFeatureタブ頁ではホワイト...
TeliU3vViewerのFeatureタブ頁ではホワイトバランスのRGain、BGainが8.000まで設定できますが、SetCamWhiteBalanceで8.000を指定するとエラーになるのは何故ですか?(No.180)
カラーカメラでは、センサーで取得したRed、Green、Brueの信号のうち、RedとBlueの信号をある割合で増幅することによりホワイトバランスを調整しています。
TeliCamSDKではRおよびBの増幅率を読み書きする関数としてGetCamBalanceRatio()とSetCamBalanceRatio()を提供しています。
GenICam関数を使用する場合は、"BalanceRatio"ノードで増幅率の読み書きができます。読み書きする増幅率の種類("Red"または"Blue")は"BalanceRatioSelector"ノードで指定してください。
TeliU3vViewerのFeatureタブ頁内にあるChromaControl表示部ではRedとBlueの増幅率がR GainとB Gainの名前で表示されています。
このR GainまたはB Gainのスライダを右端に移動させて最大値に設定したとき、カメラの機種によって7.969と表示される場合と8.000と表示される場合があります。
カメラは内部処理ではR GainとB Gainを整数値として管理しており、その値はTeliU3vViewerのXMLタブ頁ではGuruレベルのノードであるWhiteBalanceRRawノードとWhiteBalanceBRawノードとして表示されています。
R GainとB Gainの最大値が7.969と表示される機種は256倍した数値を内部値とする機種であり、8.000と表示される機種は65536倍した数値を内部値としている機種です。
65536倍している機種ではR Gain B Gainの最大値は524287/65536=7.99998ですが、小数点第4位で四捨五入して表示しているため、8.000と表示されます。
このため、ユーザアプリケーションのプログラムでSetCamBalanceRatio()関数にゲイン値8.000を設定すると最大値を超過するためエラーが戻ることになります。
ホワイトバランスゲインの設定可能範囲はGetCamBalanceRatioMinMax()関数で確認できます。設定可能範囲の値を設定するようにしてください。
TeliCamSDKではRおよびBの増幅率を読み書きする関数としてGetCamBalanceRatio()とSetCamBalanceRatio()を提供しています。
GenICam関数を使用する場合は、"BalanceRatio"ノードで増幅率の読み書きができます。読み書きする増幅率の種類("Red"または"Blue")は"BalanceRatioSelector"ノードで指定してください。
TeliU3vViewerのFeatureタブ頁内にあるChromaControl表示部ではRedとBlueの増幅率がR GainとB Gainの名前で表示されています。
このR GainまたはB Gainのスライダを右端に移動させて最大値に設定したとき、カメラの機種によって7.969と表示される場合と8.000と表示される場合があります。
カメラは内部処理ではR GainとB Gainを整数値として管理しており、その値はTeliU3vViewerのXMLタブ頁ではGuruレベルのノードであるWhiteBalanceRRawノードとWhiteBalanceBRawノードとして表示されています。
R GainとB Gainの最大値が7.969と表示される機種は256倍した数値を内部値とする機種であり、8.000と表示される機種は65536倍した数値を内部値としている機種です。
65536倍している機種ではR Gain B Gainの最大値は524287/65536=7.99998ですが、小数点第4位で四捨五入して表示しているため、8.000と表示されます。
このため、ユーザアプリケーションのプログラムでSetCamBalanceRatio()関数にゲイン値8.000を設定すると最大値を超過するためエラーが戻ることになります。
ホワイトバランスゲインの設定可能範囲はGetCamBalanceRatioMinMax()関数で確認できます。設定可能範囲の値を設定するようにしてください。