跳至內容

使用 pylon 設定擷取卡#

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

資訊

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

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

變更 Applet#

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

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

若要查詢可用的 applet,請參閱 Acquisition Applets for imaWorx CXP-12 Quad。

使用採集卡觸發 Basler boost 相機#

資訊

本節僅適用於您明確希望透過採集卡觸發相機的情況。通常,相機是透過相機的 I/O 連接器進行觸發。如需詳細資訊,請參閱 Triggered Image Acquisition。

硬體觸發(外部)#

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

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

  1. 將 AreaTriggerMode 參數設為 External.
  2. 將 TriggerInSource 參數設為所需的 "Front GPI" 輸入線。
    例如,如果您想將 GPI0(採集卡的 pin 11 與 12)用於外部觸發,請將 Property 設定為 FrontGpiTriggerSource0.
  3. 將 TriggerCameraOutSelect 參數設為對應的 "Bypass" 選項。
    例如,如果您選擇了 FrontGpiTriggerSource0,請將 TriggerCameraOutSelect 參數設為 BypassFrontGpi0.
  4. 將 TriggerState 參數設為 Active.
  5. 如有必要,請按照下方所述設定觸發訊號。

所有觸發訊號都會轉發至相機的來源訊號 CxpTrigger0 和 CxpTrigger1 (目前兩條線路的運作行為沒有差異)。這些信號可用於多種用途。最常見的應用情境是影像採集。請參閱 下方的範例.

硬體觸發(內部)#

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

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

  1. 將 AreaTriggerMode 參數設為 Generator.
  2. 將 TriggerOutputFrequency 將 Property 設定為所需的觸發輸出頻率。例如,如果您將 Property 設定為 8,採集卡將每秒產生 8 個觸發信號。
  3. 將 TriggerCameraOutSelect 參數設為所需的輸出線,例如 PulseGenerator0.
  4. 將 TriggerState 參數設為 Active.

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

所有觸發訊號都會轉發至相機的來源訊號 CxpTrigger0 和 CxpTrigger1。這些訊號可用於各種用途。最常見的應用情境是影像擷取。請參閱 下方的範例.

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

若要使用採集卡產生的 external 或 internal 觸發信號來採集影像:

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

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

資訊

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

在採集卡上執行 Debayering#

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

若要這樣做:

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

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

資訊

請確保在上面的步驟 3 中設定了正確的 RGB Pixel Format。否則,將無法正常擷取影像。

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

Basler boost 相機能以多種像素格式輸出影像資料,例如 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 將 parameter 設定為所需的相機 Pixel Format,例如: Mono12.
  2. 在擷取卡上,設定 AutomaticFormatControl 參數設為 false.
    這可讓您獨立於相機所使用的 Pixel Format 來設定輸出格式。
  3. 在擷取卡上,設定 Format 將 parameter 設定為所需的輸出格式,例如: Gray16bit.

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

基於 12-bit 相機影像資料的 16-Bit 影像資料

使用 gpioTool 設定觸發信號#

您可以使用 gpioTool 命令列工具來設定採集卡接收或傳送的觸發信號的實體 Property:

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 來設定 Property。