跳转到内容

Image ROI (BCON for MIPI)#

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

ROI is short for region of interest.

如果指定了图像 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 示例

Decreasing the size (especially the height) of the image ROI increases the camera's maximum frame rate significantly.

指导准则#

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

指导准则 示例
OffsetX + WidthWidthMax 具有 1920 x 1080 像素的传感器:
OffsetX + Width ≤ 1920
OffsetY + HeightHeightMax 具有 1920 x 1080 像素的传感器:
OffsetY + Height ≤ 1080

详情#

Image ROI 大小#

相机型号 最小宽度 宽度增量 最小高度 高度增量
daA2500-60mc 不支持 Image ROI 功能 - - -
daA2500-60mci 96 8 64 8
daA4200-30mci 96 8 64 8

Image ROI 偏移#

相机型号 偏移量 X 增量 偏移量 Y 增量
daA2500-60mc - -
daA2500-60mci 8 8
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);
/* 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);

You can also use the pylon Viewer to easily set the parameters.