跳转到内容

Image ROI (dart E)#

相机的 Image ROI 功能允许您指定要使用传感器阵列的哪些部分采集图像。

ROI 是兴趣区的缩写。

如果指定了图像 ROI,则相机将仅传输该区域内的像素数据。在大多数相机上,这会大大提高相机的最大帧速率。

该功能的使用#

更改 Image ROI 的位置和大小#

启用出厂设置后,相机将设置为默认分辨率。但是,您可以根据需要更改位置和大小。

要更改图像 ROI 的位置和大小,请执行以下操作:

  1. 确保相机空闲,即未在捕获图像。
  2. 使用以下参数指定图像 ROI 的大小

    • Width
    • Height
  3. 使用以下参数指定图像 ROI 的位置

    • OffsetX
    • OffsetY

图像 ROI 的原点位于传感器阵列的左上角(第 0 列、第 0 行)。

示例:假设您指定了以下设置:

  • Width = 16
  • Height = 10
  • OffsetX = 2
  • OffsetY = 6

这将创建以下图像 ROI:

Image ROI 示例

减小图像 ROI 的尺寸(尤其是高度)会显着提高相机的最大帧速率。

指导准则#

指定图像 ROI 时,请遵循以下准则:

指导准则 示例
OffsetX + WidthWidthMax Camera with a 1920 x 1080 pixel sensor:
OffsetX + Width ≤ 1920
OffsetY + HeightHeightMax Camera with a 1920 x 1080 pixel sensor:
OffsetY + Height ≤ 1080

详情#

Image ROI 大小#

相机型号 最小宽度 宽度增量 最小高度 高度增量
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 增量 Offset Y 增量
daA2500-60mc 2 2
daA2500-60mci 8 8
daA3840-30mc 2 2
daA4200-30mci 8 8

示例代码#

// Set the width to the maximum value
int64_t maxWidth = camera.WidthMax.GetValue();
camera.Width.SetValue(maxWidth);
// Set the height to 500
camera.Height.SetValue(500);
// Set the offset to 0
camera.OffsetX.SetValue(0);
camera.OffsetY.SetValue(0);
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);
# Set the width to the maximum value
maxWidth = camera.WidthMax.Value
camera.Width.Value = maxWidth
# Set the height to 500
camera.Height.Value = 500
# Set the offset to 0
camera.OffsetX.Value = 0
camera.OffsetY.Value = 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);

您还可以使用 pylon Viewer 轻松设置参数。