跳至內容

使用 pylon 設定擷取卡#

本主題說明如何使用 pylon API、pylon Viewer 或 gpioTool 來設定相容於 pylon 的擷取卡。

資訊

本主題涵蓋基本使用案例。如需關於擷取卡軟體功能的深入資訊,請參閱以下文件:

在以下情況下,設定擷取卡特別有用:

變更 Applet#

執行於擷取卡上的 applet 定義了其功能。對於某些相機設定,您可能必須變更預設的 applet。

若要變更擷取卡所使用的 applet,請設定 InterfaceApplet 參數設為要載入的 applet 名稱,例如: Acq_DualCXP12Area.

若要了解有哪些可用的 applet,請參閱適用於 imaWorx CXP-12 Quad 的 Acquisition Applets。

使用擷取卡觸發 Basler boost 相機#

資訊

本節僅在您特別想要透過擷取卡觸發相機時才有相關性。通常相機是透過相機的 I/O 連接器進行觸發。如需詳細資訊,請參閱觸發式影像擷取。

硬體觸發(外部)#

啟用外部觸發後,您可以將觸發輸入訊號傳送至擷取卡,然後擷取卡會將這些訊號轉發至 Basler boost 相機。

若要將擷取卡設定為外部硬體觸發:

  1. 將相機中的 AreaTriggerMode 參數設為 External.
  2. 將相機中的 TriggerInSource 將參數設為所需的 "Front GPI" 輸入線路。
    例如,如果您想要使用 GPI0(擷取卡上的第 11 與 12 針腳)進行外部觸發,請將參數設定為 FrontGpiTriggerSource0.
  3. 將相機中的 TriggerCameraOutSelect 將參數設為對應的 "Bypass" 選項。
    例如,如果您選擇了 FrontGpiTriggerSource0)之間時,請將該記憶體 operator 上的 TriggerCameraOutSelect 參數設為 BypassFrontGpi0.
  4. 將相機中的 TriggerState 參數設為 Active.
  5. 如有必要,請按照下方所述設定觸發訊號。

所有觸發訊號都會轉發至相機的來源訊號 CxpTrigger0 進行明確的生命週期管理即呼叫 CxpTrigger1 (目前這兩條線路的運作行為沒有差異)。這些訊號可用於各種目的。最常見的使用案例是影像擷取。請參閱 下方的範例.

硬體觸發(內部)#

啟用內部觸發後,擷取卡會在指定的頻率內部產生觸發訊號。所有外部觸發訊號都會被忽略。

若要將擷取卡設定為內部硬體觸發:

  1. 將相機中的 AreaTriggerMode 參數設為 Generator.
  2. 將相機中的 TriggerOutputFrequency 參數設為所需的觸發輸出頻率。例如,如果您將參數設為 8,擷取卡將會每秒產生 8 個觸發訊號。
  3. 將相機中的 TriggerCameraOutSelect 參數設為所需的輸出線路,例如 PulseGenerator0.
  4. 將相機中的 TriggerState 參數設為 Active.

現在,每當您開始影像擷取時,擷取卡就會以指定的頻率產生觸發訊號。

所有觸發訊號都會轉發至相機的來源訊號 CxpTrigger0 進行明確的生命週期管理即呼叫 CxpTrigger1。這些訊號可用於各種用途。最常見的用途是影像擷取。請參閱 下方的範例.

範例:使用觸發訊號進行影像擷取#

若要使用擷取卡所產生的外部或內部觸發訊號來擷取影像:

  1. 在相機上,設定 TriggerSelector 參數設為 FrameStart.
  2. 將相機中的 TriggerMode 參數設為 On.
  3. 將相機中的 ExposureMode 參數設為 Timed.
  4. 將相機中的 TriggerSource 參數設為 CxpTrigger0 或 CxpTrigger1.
    由於目前這兩條線路在行為上沒有差異,您可以任選其一。

現在,每當擷取卡接收或產生觸發訊號時,相機就會擷取一張影像。

資訊

您可以將觸發訊號用作任何可由訊號來源控制的 Basler boost 相機功能的來源。例如,設定 CounterTriggerSource 參數設為 CxpTrigger0 可讓您使用介面卡控制 Counter 使用擷取卡的 feature。

在擷取卡上執行去拜爾 (Debayering)#

您可以在擷取卡上執行去拜耳(debayering)處理。這能降低相機和主機電腦的運算負載。

若要這樣做:

  1. 在相機上,設定 PixelFormat 將 parameter 設定為 Bayer pixel format,例如: BayerRG12.
  2. 在擷取卡上,將 AutomaticFormatControl 參數設為 false.
    這可讓您獨立於相機所使用的像素格式來設定輸出格式。
  3. 在擷取卡上,將 Format parameter 設定為對應的 RGB pixel format。
    位元深度必須是 Bayer pixel format 位元深度的三倍。例如:BayerRG12(相機)= Color36bit(擷取卡)。

現在,擷取卡將對相機的原始影像資料執行去拜耳處理,並輸出 RGB 影像資料。

資訊

請確保在上述步驟 3 中設定正確的 RGB pixel format。否則,將無法正常擷取影像。

使用相機不支援的輸出格式#

Basler boost 相機可以多種 Pixel Format 輸出影像資料,例如 Bayer RG 8 或 RGB 8。如需詳細資訊,請參閱 pixel format 主題。

如果您的相機不提供所需的 pixel format,且您也希望避免在主機電腦上進行影像轉換,您或許可以使用擷取卡所提供的其中一種 pixel format。

擷取卡提供以下格式:

Gray8bit Gray10bit Gray12bit Gray16bit
Color24bit Color30bit Color36bit Color48bit
Bayergr8 Bayergr10 Bayergr12 Bayergr16
Bayerrg8 Bayerrg10 Bayerrg12 Bayerrg16
Bayergb8 Bayergb10 Bayergb12 Bayergb16
Bayerbg8 Bayerbg10 Bayerbg12 Bayerbg16

若要使用相機上未提供的輸出格式:

  1. 在相機上,設定 PixelFormat 參數設為所需的相機 Pixel Format,例如: Mono12.
  2. 在擷取卡上,將 AutomaticFormatControl 參數設為 false.
    這可讓您獨立於相機所使用的像素格式來設定輸出格式。
  3. 在擷取卡上,將 Format 參數設為所需的輸出格式,例如: Gray16bit.

使用上述範例數值,擷取卡將根據 12 位元相機影像資料輸出 16 位元影像資料。如以下圖示所示,系統會插入填補位元(零)。

基於 12 位元相機影像資料的 16 位元影像資料

使用 gpioTool 設定觸發訊號#

使用 gpioTool 命令列工具,您可以設定擷取卡接收或傳送之觸發訊號的實體屬性:

gpioTool 包含在 Framegrabber SDK 與 pylon Software Suite 中。

如需詳細資訊,請參閱 gpioTool。

範例程式碼#

// Select the Acq_SingleCXP12Area applet
camera.GetTLParams().InterfaceApplet.SetValue(Acq_SingleCXP12Area);
// Configure the frame grabber for external triggering
camera.GetTLParams().AreaTriggerMode.SetValue(AreaTriggerMode_External);
camera.GetTLParams().TriggerInSource.SetValue(TriggerInSource_FrontGpiTriggerSource0);
camera.GetTLParams().TriggerCameraOutSelect.SetValue(TriggerCameraOutSelect_BypassFrontGpi0);
camera.GetTLParams().TriggerState.SetValue(TriggerState_Active);
// Configure the frame grabber for internal triggering
camera.GetTLParams().AreaTriggerMode.SetValue(AreaTriggerMode_Generator);
camera.GetTLParams().TriggerOutputFrequency.SetValue(8);
camera.GetTLParams().TriggerCameraOutSelect.SetValue(TriggerCameraOutSelect_PulseGenerator0);
camera.GetTLParams().TriggerState.SetValue(TriggerState_Active);
// Use the external or internal trigger signals for image acquisition
camera.TriggerSelector.SetValue(TriggerSelector_FrameStart);
camera.TriggerMode.SetValue(TriggerMode_On);
camera.ExposureMode.SetValue(ExposureMode_Timed);
camera.TriggerSource.SetValue(TriggerSource_CxpTrigger0);
// Perform debayering on the frame grabber (Bayer RG 12 --> RGB 36 bit)
camera.PixelFormat.SetValue(PixelFormat_BayerRG12);
camera.GetTLParams().AutomaticFormatControl.SetValue(false);
camera.GetTLParams().Format.SetValue(Format_Color36bit);
// Configure the frame grabber to output 16-bit mono image data based on
// 12-bit mono image data from the camera
camera.PixelFormat.SetValue(PixelFormat_Mono12);
camera.GetTLParams().AutomaticFormatControl.SetValue(false);
camera.GetTLParams().Format.SetValue(Format_Gray16bit);

此範例程式碼僅提供 C++ 版本。

您也可以使用 pylon Viewer 來設定參數。