跳转到内容

Resulting Frame Rate#

相机的 Resulting Frame Rate 功能可让您确定当前相机设置的预估帧速率。

例如,如果您想知道两次触发之间必须等待多长时间,这将很有用。

帧速率以每秒帧数 (fps) 表示。

该功能的使用#

为什么要检查最终帧速率#

优化帧速率#

将相机配置为自由运行图像采集和连续采集时,如果要为成像应用优化帧速率,了解最终帧速率将很有用。您可以调整相机设置以限制帧速率,直至最终帧速率达到所需值为止。

优化触发图像采集#

将相机配置为触发图像采集时,如果要尽可能频繁地触发相机而不会过度触发,了解最终帧速率将很有用。您可以通过获取所得到的帧速率的倒数来计算每个触发信号后必须等待多长时间:1/最终帧速率。

示例:如果最终帧速率为 12.5,则必须在每个触发信号之后等待至少 1/12.5 = 0.08 秒。否则,相机将忽略触发信号,并生成帧开始过度触发事件。

检查最终帧速率#

要检查当前相机设置的最终帧速率,即估计的帧速率,请读取 ResultingFrameRate 参数的值。该值以每秒帧数 (fps) 为单位表示。

此参数值考虑了所有限制帧速率的因素

信息

  • 在相机闲置时以及在相机采集图像时,可以检查最终帧速率。
  • 如果要检查目前未连接到计算机的 Basler 相机的最终帧速率,请使用在线 Basler 帧速率计算器

限制帧速率的因素#

有几个因素可能会限制任何 Basler 相机的帧速率:

  • Acquisition Frame Rate如果启用了 Acquisition Frame Rate 功能,相机的帧速率受帧采集速率的限制。例如,如果启用了 Acquisition Frame Rate 功能并将帧采集速率设为 10 fps,相机的帧速率将永远不会高于 10 fps。
  • 分配带宽:带宽限制会降低帧速率,尤其是当一台以上的相机连接到计算机时。减少的程度取决于相机型号、连接到计算机的相机数量以及计算机的硬件。
  • 相机工作模式如果 CameraOperationMode 参数可用,并且设置为 LongExposure,帧速率会降低。
  • 设备链路吞吐量:如果 DeviceLinkThroughputLimitMode 参数可用并设置为 On,它会将数据传输的可用带宽限制为 DeviceLinkThroughputLimit 参数值。这也限制了帧速率。
  • 曝光时间如果使用很长的曝光时间,则每秒可以采集到的帧数更少。
  • 场输出模式:如果可用,则使用场 0 输出模式或场 1 输出模式可提高相机的帧速率。
  • Image ROI如果使用较大的 Image ROI,则每秒可以获取的帧数更少。在大多数相机上,降低 Image ROI 高度可以提高帧速率。在部分相机上,减小 Image ROI 宽度也能提高帧速率。
  • 参数限值:在部分相机上,您可以使用 Remove Parameter Limits 功能删除帧速率限值的功能。
  • 传感器位深:在部分相机上,可以通过减小传感器位深来提高帧速率。
  • 传感器读出模式在部分相机上,您可以启用快速传感器读出模式,该模式可以提高帧速率。但是可能会对图像质量产生不利影响。
  • 快门模式如果选择了全局重置释放快门模式,则无法获取重叠的图像。这会降低相机的帧速率。
  • 层叠分区成像如果可用,请使用 Stacked Zone Imaging 功能提高帧速率。

示例代码#

// Get the resulting frame rate
double d = camera.ResultingFrameRate.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Get the resulting frame rate
double d = CFloatPtr(nodemap.GetNode("ResultingFrameRate"))->GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Get the resulting frame rate
double d = CFloatParameter(nodemap, "ResultingFrameRate").GetValue();
// Get the resulting frame rate
double d = camera.Parameters[PLCamera.ResultingFrameRate].GetValue();
// Get the resulting frame rate
double d = Pylon.DeviceGetFloatFeature(hdev, "ResultingFrameRate");
/* 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 */
double d = 0;
/* Get the resulting frame rate */
errRes = PylonDeviceGetFloatFeature(hdev, "ResultingFrameRate", &d);
CHECK(errRes);

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