Image ROI (dart E)#
ROIはregion of interest(対象領域)の略です。
画像ROIを指定した場合、カメラはその領域内からの画素データのみを送信します。ほとんどのカメラでは、これによりカメラの最大フレームレートが大幅に向上します。
機能を使用する#
Image ROIの位置とサイズの変更#
工場出荷時の設定を有効にすると、カメラはデフォルトの解像度に設定されます。ただし、必要に応じて位置とサイズを変更できます。
画像ROIの位置とサイズを変更するには、次の手順に従います。
- カメラがアイドル状態であること、つまり画像をキャプチャしていないことを確認します。
-
次のパラメーターを使用して、画像ROIのサイズを指定します。
Width
Height
-
次のパラメーターを使用して、画像ROIの位置を指定します。
OffsetX
OffsetY
画像ROIの原点は、センサーアレイの左上隅(列0、行0)になります。
例:次の設定を指定したとします。
Width
= 16Height
= 10OffsetX
= 2OffsetY
= 6
これにより、次のイメージROIが作成されます。
画像ROIのサイズ(特に高さ)を小さくすると、カメラの最大フレームレートが非常に高くなります。
ガイドライン#
画像ROIを指定する場合は、次のガイドラインに従ってください。
ガイドライン | 例 |
---|---|
OffsetX + Width ≤ WidthMax | Camera with a 1920 x 1080 pixel sensor:OffsetX + Width ≤ 1920 |
OffsetY + Height ≤ Height最大 | Camera with a 1920 x 1080 pixel sensor:OffsetY + Height ≤ 1080 |
特性#
Image ROIのサイズ#
カメラモデル | Minimum Width | Width Increment | Minimum Height | Height Increment |
---|---|---|---|---|
daA2500-60mc | 2 | 2 | 2 | 2 |
daA2500-60mci | 96 | 8 | 64 | 8 |
daA3840-30mc | 2 | 2 | 2 | 2 |
daA4200-30mci | 96 | 8 | 64 | 8 |
Image ROIのオフセット#
カメラモデル | Offset X Increment | Offset Y Increment |
---|---|---|
daA2500-60mc | 2 | 2 |
daA2500-60mci | 8 | 8 |
daA3840-30mc | 2 | 2 |
daA4200-30mci | 8 | 8 |
サンプルコード#
INodeMap& nodemap = camera.GetNodeMap();
// Set the width to the maximum value
int64_t maxWidth = CIntegerParameter(nodemap, "WidthMax").GetValue();
CIntegerParameter(nodemap, "Width").SetValue(maxWidth);
// Set the height to 500
CIntegerParameter(nodemap, "Height").SetValue(500);
// Set the offset to 0
CIntegerParameter(nodemap, "OffsetX").SetValue(0);
CIntegerParameter(nodemap, "OffsetY").SetValue(0);
// Set the width to the maximum value
Int64 maxWidth = camera.Parameters[PLCamera.WidthMax].GetValue();
camera.Parameters[PLCamera.Width].SetValue(maxWidth);
// Set the height to 500
camera.Parameters[PLCamera.Height].SetValue(500);
// Set the offset to 0
camera.Parameters[PLCamera.OffsetX].SetValue(0);
camera.Parameters[PLCamera.OffsetY].SetValue(0);
/* 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 */
int64_t maxWidth = 0;
/* Set the width to the maximum value */
errRes = PylonDeviceGetIntegerFeature(hdev, "WidthMax", &maxWidth);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "Width", maxWidth);
CHECK(errRes);
/* Set the height to 500 */
errRes = PylonDeviceSetIntegerFeature(hdev, "Height", 500);
CHECK(errRes);
/* Set the offset to 0 */
errRes = PylonDeviceSetIntegerFeature(hdev, "OffsetX", 0);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "OffsetY", 0);
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 */
int64_t maxWidth = 0;
/* Set the width to the maximum value */
errRes = PylonDeviceGetIntegerFeature(hdev, "WidthMax", &maxWidth);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "Width", maxWidth);
CHECK(errRes);
/* Set the height to 500 */
errRes = PylonDeviceSetIntegerFeature(hdev, "Height", 500);
CHECK(errRes);
/* Set the offset to 0 */
errRes = PylonDeviceSetIntegerFeature(hdev, "OffsetX", 0);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "OffsetY", 0);
CHECK(errRes);
pylonViewerアを使用して、パラメーターを簡単に設定することもできます。