跳转到内容
STAGING SERVER
DEVELOPMENT SERVER

结果 Acquisition Frame Rate#

利用 Resulting Frame Rate camera feature,您可以根据当前的相机设置来确定估算的帧率。

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

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

该功能的使用#

为什么要检查 Resulting Frame Rate#

优化帧速率#

当相机配置为 free run image acquisition 和连续采集时,了解 Resulting Frame Rate 对于希望为成像应用优化帧率的用户非常有用。您可以调整 limiting the frame rate 的相机设置,直至 Resulting Frame Rate 达到期望值。

优化触发图像采集#

当相机配置为 triggered image acquisition 时,了解 Resulting Frame Rate 有助于您在不发生过触发的情况下尽可能频繁地触发相机。您可以通过对 Resulting Frame Rate 取倒数来计算每次触发信号后必须等待的时间:1 / Resulting Frame Rate。

示例:如果 Resulting Frame Rate 为 12.5,则每次触发信号后您必须至少等待 1/12.5 = 0.08 秒。否则,相机将忽略该触发信号并生成 Frame Start Overtrigger 事件。

检查 Resulting Frame Rate#

要检查 Resulting Frame Rate(即在当前相机设置下的估算帧率),请获取以下参数的值: BslResultingAcquisitionFrameRate 参数。该值以每秒帧数 (fps) 表示。

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

信息

  • 在某些相机型号上,提供了 ResultingFramePeriod 参数也可用。它允许您确定 resulting frame period,即帧率的倒数(1 / 帧率)。
  • 无论相机处于空闲状态还是正在采集图像,检查 Resulting Frame Rate 均有效。
  • 如果您想检查当前未连接到计算机的 Basler 相机的 Resulting Frame Rate,请使用在线 Basler Frame Rate Calculator。

限制帧速率的因素#

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

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

示例代码#

ace Classic/U/L GigE 相机#
// Get the resulting acquisition frame rate
double d = camera.ResultingFrameRateAbs.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Get the resulting acquisition frame rate
double d = CFloatParameter(nodemap, "ResultingFrameRateAbs").GetValue();
// Get the resulting acquisition frame rate
double d = camera.Parameters[PLCamera.ResultingFrameRateAbs].GetValue();
/* 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 acquisition frame rate */
errRes = PylonDeviceGetFloatFeature(hdev, "ResultingFrameRateAbs", &d);
CHECK(errRes);
# Get the resulting acquisition frame rate
d = camera.ResultingFrameRateAbs.Value
ace Classic/U/L USB 3.0、dart Classic 和 pulse 相机#
// Get the resulting acquisition frame rate
double d = camera.ResultingFrameRate.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Get the resulting acquisition frame rate
double d = CFloatParameter(nodemap, "ResultingFrameRate").GetValue();
// Get the resulting acquisition frame rate
double d = camera.Parameters[PLCamera.ResultingFrameRate].GetValue();
/* 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 acquisition frame rate */
errRes = PylonDeviceGetFloatFeature(hdev, "ResultingFrameRate", &d);
CHECK(errRes);
# Get the resulting acquisition frame rate
d = camera.ResultingFrameRate.Value
其他相机#
// Get the resulting acquisition frame rate
double d = camera.BslResultingAcquisitionFrameRate.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Get the resulting acquisition frame rate
double d = CFloatParameter(nodemap, "BslResultingAcquisitionFrameRate").GetValue();
// Get the resulting acquisition frame rate
double d = camera.Parameters[PLCamera.BslResultingAcquisitionFrameRate].GetValue();
/* 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 acquisition frame rate */
errRes = PylonDeviceGetFloatFeature(hdev, "BslResultingAcquisitionFrameRate", &d);
CHECK(errRes);
# Get the resulting acquisition frame rate
d = camera.BslResultingAcquisitionFrameRate.Value

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