産業用カメラに関する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値を使用して画像フォーマット変換してください。
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値を使用して画像フォーマット変換してください。