産業用カメラに関するFAQ/画像サイズとオフセットが正しくかけないことがあります。
画像サイズとオフセットが正しくかけないことがあります。(No.274)
画像サイズ、オフセットをカメラに書き込むとき、以下の条件を守らないと書いた値が破棄されます。
1)幅+オフセットX、高さ+オフセットYの値がセンサの幅、高さを越えないこと。
2)幅、高さ、オフセットX、、オフセットYの値がそれぞれの最小値以上であること。
3)幅、高さ、オフセットX、オフセットY値はそれぞれの設定単位の整数倍の値であること。
4)画像取得中に画像サイズ、オフセットを変更しないこと。
画像サイズとオフセットを同時に変更する場合、1)の条件を守れる順序で書き込む必要があります。例えば、VGAカメラで幅640、オフセットX0の設定から幅320、オフセットX160の設定に変更する時、Bの手順ではなくAの手順で書き込んでください。
A) SetCamWidth(hCam, 320) ⇒ SetCamOffsetX(hCam, 160)
B) SetCamOffsetX(hCam, 160) ⇒ SetCamWidth(hCam, 320)
SetCamRoi()関数を使用すると、サイズとオフセットの書き込み順序を気にせずROIを設定することができます。
また、最初にオフセットを0にしてから希望のサイズとオフセットを書き込む方法もあります。
画像サイズ、オフセットの設定単位はカメラの取扱説明書に記載されています。
以下の関数でも設定単位を取得することができます。
GetCamWidthMinMax(), CameraControl.GetWidthMinMax()
GetCamHeightMinMax(), CameraControl.GetHeightMinMax()
GetCamOffsetXMinMax(), CameraControl.GetOffsetXMinMax()
GetCamOffsetYMinMax(), CameraControl.GetOffsetYMinMax()
ビニングとスケーラブルが同時に使用できるカメラの場合は上述の1)~3)の制限値はビニング設定を考慮した値を使用してください。
1)幅+オフセットX、高さ+オフセットYの値がセンサの幅、高さを越えないこと。
2)幅、高さ、オフセットX、、オフセットYの値がそれぞれの最小値以上であること。
3)幅、高さ、オフセットX、オフセットY値はそれぞれの設定単位の整数倍の値であること。
4)画像取得中に画像サイズ、オフセットを変更しないこと。
画像サイズとオフセットを同時に変更する場合、1)の条件を守れる順序で書き込む必要があります。例えば、VGAカメラで幅640、オフセットX0の設定から幅320、オフセットX160の設定に変更する時、Bの手順ではなくAの手順で書き込んでください。
A) SetCamWidth(hCam, 320) ⇒ SetCamOffsetX(hCam, 160)
B) SetCamOffsetX(hCam, 160) ⇒ SetCamWidth(hCam, 320)
SetCamRoi()関数を使用すると、サイズとオフセットの書き込み順序を気にせずROIを設定することができます。
また、最初にオフセットを0にしてから希望のサイズとオフセットを書き込む方法もあります。
画像サイズ、オフセットの設定単位はカメラの取扱説明書に記載されています。
以下の関数でも設定単位を取得することができます。
GetCamWidthMinMax(), CameraControl.GetWidthMinMax()
GetCamHeightMinMax(), CameraControl.GetHeightMinMax()
GetCamOffsetXMinMax(), CameraControl.GetOffsetXMinMax()
GetCamOffsetYMinMax(), CameraControl.GetOffsetYMinMax()
ビニングとスケーラブルが同時に使用できるカメラの場合は上述の1)~3)の制限値はビニング設定を考慮した値を使用してください。