跳至內容
測試伺服器
開發伺服器

產生的 Acquisition Frame Rate#

透過 Resulting Frame Rate camera feature,您可以根據目前的相機設定來估算幀率。

這在您想要知道在各個 triggers 之間需要等待多長時間時非常有用。

幀率以每秒幀數 (fps) 表示。

使用此功能#

為什麼要檢查 Resulting Acquisition 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 Acquisition Frame Rate#

若要檢查 Resulting Frame Rate(即目前相機設定下的估算幀率),請取得 BslResultingAcquisitionFrameRate 參數的值。此數值以每秒幀數 (fps) 表示。

參數值會將所有 factors limiting the frame rate 納入考量。

資訊

  • 在某些相機型號上,提供 ResultingFramePeriod 參數也可用。它可讓您決定產生的幀週期,這也就是幀率的倒數 (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:如果可用,sensor binning 可以提高幀率。
  • Camera Operation Mode: 如果已啟用 CameraOperationMode 參數可用且設定為 LongExposure時,幀率會降低。
  • 裝置連結傳輸量 (Device Link Throughput): 如果已啟用 DeviceLinkThroughputLimitMode 參數可用且設定為 On,它會限制用於資料傳輸至 DeviceLinkThroughputLimit 參數值的可用頻寬。這也會限制幀率。
  • Exposure Time:如果您使用非常長的曝光時間,每秒可擷取的幀數就會減少。
  • 場輸出模式 (Field Output Mode):如果可用,使用欄 0 輸出模式 (Field 0 Output Mode) 或欄 1 輸出模式 (Field 1 Output Mode) 可以提高相機的幀率。
  • Image ROI:如果您使用大型 Image ROI,每秒可擷取的幀數就會減少。在大多數相機上,縮小 Image ROI height 可以提高幀率。在某些相機上,縮小 Image ROI width 也會提高幀率。
  • Parameter Limits: 在某些相機上,您可以使用 Remove Parameter Limits 功能來解除影格率限制。
  • Sensor Bit Depth: 在某些相機上,您可以降低感光元件位元深度以提高影格率。
  • Sensor Readout Mode: 在某些相機上,您可以啟用快速感光元件讀出模式以提高影格率。然而,這可能會對影像 Quality 產生不良影響。
  • Sensor Shutter Mode: 如果選取 Global Reset Release 快門模式,則無法進行重疊影像擷取。這會降低相機的影格率。
  • Stacked Zone Imaging: 如果可用,使用 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 來輕鬆設定參數。