産業用カメラに関するFAQ/ReverseXまたはReverseYを有効にするとカラー画...

ReverseXまたはReverseYを有効にするとカラー画像の色が正常に表示されなくなります。(No.279)

ReverseXまたはReverseYを有効にしたBayerタイプ(PXL_FMT_BayerGR8、PXL_FMT_BayerRG8、PXL_FMT_BayerGB8、PXL_FMT_BayerBG8など)の画像をBGRまたはBGRAフォーマットの画像に変換するときに、カメラから読み出したPixelFormat値を使用しないで、カメラの取扱説明書に記載されているPixelFormat値を使用して画像フォーマットの変換を行うと、正常な色の画像に変換できません。

Bayerフィルタ配置はセンサ上の各画素にR,G,Bのカラーフィルタを市松模様に配置したフィルタ配置です。BayerタイプのPixelFormatではBayerフィルタ配置のセンサの画素値をそのまま出力します。

カメラの取扱説明書のPixelFormatの説明ではReverseX、ReverseYをともに無効にしたときのPixelFormat値を記載しています。

例えばPXL_FMT_BayerBG8は以下の順番でR、G、Bコンポーネントの画素値が出力されます。

BGBGBGBGBGBG
GRGRGRGRGRGR
BGBGBGBGBGBG
GRGRGRGRGRGR
BGBGBGBGBGBG
GRGRGRGRGRGR

ReverseX、ReverseYを有効にすると画素値の出力順序が変わり、カメラのPixelFormatの値が実際に出力される画素値の順序に見合ったPixelFormat値に変更されます。このPixelFormat値は付帯情報として画像と一緒にカメラから送信されます。

高水準ストリーム関数をご使用の場合、Strm_ReadCurrentImage()、Strm_LockBuffer()の引数にあるCAM_IMAGE_INFO構造体のuiPixelFormatで受信した画像のPixelFormatを得ることができます。

低水準ストリーム関数をご使用の場合は Strm_GetStrmReqInfo()を使用するとStrm_DequeueRequest()で取得したストリームリクエスト内のCAM_IMAGE_INFO構造体が取得できます。

Bayeタイプの画像をBGRまたはBGRAフォーマットの画像に変換するときには、画像の付帯情報として受信したPixelFormat値またはカメラから読み出したPixelFormat値を使用して画像フォーマット変換してください。

戻る

このFAQは、お役にたちましたか?

今後のFAQ作成の参考にさせていただくため、FAQについてのご意見等をご入力ください。(800文字以内)
下記にご記入いただいても、回答できませんのでご了承下さい。