使用 pylon 設定擷取卡#
資訊
本主題涵蓋基本使用案例。如需有關擷取卡軟體功能的深入資訊,請參閱下列說明文件:
在下列情況下,設定擷取卡特別有用:
- 您想要 變更採集卡使用的 applet。
- 您想要透過採集卡 觸發 連線的 Basler boost 相機。
- 您想要在採集卡上執行 debayering,以提升成像系統的效能。
- 您想要使用相機上不提供的 output format,例如 16-bit mono 格式。
- 您想要 設定採集卡接收或傳送的觸發信號。
變更 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 相機。
若要為外部硬體觸發設定擷取卡:
- 將
AreaTriggerMode參數設為External. - 將
TriggerInSource參數設為所需的 "Front GPI" 輸入線。
例如,如果您想將 GPI0(採集卡的 pin 11 與 12)用於外部觸發,請將 Property 設定為FrontGpiTriggerSource0. - 將
TriggerCameraOutSelect參數設為對應的 "Bypass" 選項。
例如,如果您選擇了FrontGpiTriggerSource0,請將TriggerCameraOutSelect參數設為BypassFrontGpi0. - 將
TriggerState參數設為Active. - 如有必要,請按照下方所述設定觸發訊號。
所有觸發訊號都會轉發至相機的來源訊號 CxpTrigger0 和 CxpTrigger1 (目前兩條線路的運作行為沒有差異)。這些信號可用於多種用途。最常見的應用情境是影像採集。請參閱 下方的範例.
硬體觸發(內部)#
啟用內部觸發後,擷取卡會在指定的頻率下在內部產生觸發訊號。所有外部觸發訊號都將被忽略。
若要將擷取卡設定為內部硬體觸發:
- 將
AreaTriggerMode參數設為Generator. - 將
TriggerOutputFrequency將 Property 設定為所需的觸發輸出頻率。例如,如果您將 Property 設定為 8,採集卡將每秒產生 8 個觸發信號。 - 將
TriggerCameraOutSelect參數設為所需的輸出線,例如PulseGenerator0. - 將
TriggerState參數設為Active.
現在,每當您開始影像擷取時,擷取卡就會以指定的頻率產生觸發訊號。
所有觸發訊號都會轉發至相機的來源訊號 CxpTrigger0 和 CxpTrigger1。這些訊號可用於各種用途。最常見的應用情境是影像擷取。請參閱 下方的範例.
範例:使用觸發訊號進行影像擷取#
若要使用採集卡產生的 external 或 internal 觸發信號來採集影像:
- 在相機上,將
TriggerSelector參數設為FrameStart. - 將
TriggerMode參數設為On. - 將
ExposureMode參數設為Timed. - 將
TriggerSource參數設為CxpTrigger0或CxpTrigger1.
由於目前兩條線路的運作行為沒有差異,您可以任意選擇其中一條。
現在,每當擷取卡接收或產生觸發訊號時,相機就會擷取一張影像。
資訊
您可以將觸發訊號用作任何可由訊號來源控制的 Basler boost 相機功能的來源。例如,設定 CounterTriggerSource 參數設為 CxpTrigger0 可讓您使用介面卡來控制 Counter 使用採集卡的 feature。
在採集卡上執行 Debayering#
您可以在擷取卡上執行去拜耳(debayering)運算。這會降低相機和主機電腦的運算負載。
若要這樣做:
- 在相機上,將
PixelFormat參數設定為 Bayer Pixel Format,例如BayerRG12. - 在擷取卡上,設定
AutomaticFormatControl參數設為false.
這可讓您獨立於相機所使用的 Pixel Format 來設定輸出格式。 - 在擷取卡上,設定
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 |
若要使用相機不支援的輸出格式:
- 在相機上,將
PixelFormat將 parameter 設定為所需的相機 Pixel Format,例如:Mono12. - 在擷取卡上,設定
AutomaticFormatControl參數設為false.
這可讓您獨立於相機所使用的 Pixel Format 來設定輸出格式。 - 在擷取卡上,設定
Format將 parameter 設定為所需的輸出格式,例如:Gray16bit.
使用上述範例數值,擷取卡會根據 12 位元相機影像資料輸出 16 位元影像資料。如以下插圖所示,會插入填補位元(零)。
使用 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。