使用 pylon 設定擷取卡#
資訊
本主題涵蓋基本使用案例。如需關於擷取卡軟體功能的深入資訊,請參閱以下文件:
在以下情況下,設定擷取卡特別有用:
- 您想要變更 applet,該 applet 是由擷取卡所使用。
- 您想要透過擷取卡來觸發所連接的 Basler boost 相機。
- 您想要在擷取卡上執行去拜爾 (debayering),以提升成像系統的效能。
- 您想要使用相機上無法提供的輸出格式,例如 16 位元單色格式。
- 您想要設定由擷取卡接收或發送的觸發訊號。
變更 Applet#
執行於擷取卡上的 applet 定義了其功能。對於某些相機設定,您可能必須變更預設的 applet。
若要變更擷取卡所使用的 applet,請設定 InterfaceApplet 參數設為要載入的 applet 名稱,例如: Acq_DualCXP12Area.
若要了解有哪些可用的 applet,請參閱適用於 imaWorx CXP-12 Quad 的 Acquisition Applets。
使用擷取卡觸發 Basler boost 相機#
資訊
本節僅在您特別想要透過擷取卡觸發相機時才有相關性。通常相機是透過相機的 I/O 連接器進行觸發。如需詳細資訊,請參閱觸發式影像擷取。
硬體觸發(外部)#
啟用外部觸發後,您可以將觸發輸入訊號傳送至擷取卡,然後擷取卡會將這些訊號轉發至 Basler boost 相機。
若要將擷取卡設定為外部硬體觸發:
- 將相機中的
AreaTriggerMode參數設為External. - 將相機中的
TriggerInSource將參數設為所需的 "Front GPI" 輸入線路。
例如,如果您想要使用 GPI0(擷取卡上的第 11 與 12 針腳)進行外部觸發,請將參數設定為FrontGpiTriggerSource0. - 將相機中的
TriggerCameraOutSelect將參數設為對應的 "Bypass" 選項。
例如,如果您選擇了FrontGpiTriggerSource0)之間時,請將該記憶體 operator 上的TriggerCameraOutSelect參數設為BypassFrontGpi0. - 將相機中的
TriggerState參數設為Active. - 如有必要,請按照下方所述設定觸發訊號。
所有觸發訊號都會轉發至相機的來源訊號 CxpTrigger0 進行明確的生命週期管理即呼叫 CxpTrigger1 (目前這兩條線路的運作行為沒有差異)。這些訊號可用於各種目的。最常見的使用案例是影像擷取。請參閱 下方的範例.
硬體觸發(內部)#
啟用內部觸發後,擷取卡會在指定的頻率內部產生觸發訊號。所有外部觸發訊號都會被忽略。
若要將擷取卡設定為內部硬體觸發:
- 將相機中的
AreaTriggerMode參數設為Generator. - 將相機中的
TriggerOutputFrequency參數設為所需的觸發輸出頻率。例如,如果您將參數設為 8,擷取卡將會每秒產生 8 個觸發訊號。 - 將相機中的
TriggerCameraOutSelect參數設為所需的輸出線路,例如PulseGenerator0. - 將相機中的
TriggerState參數設為Active.
現在,每當您開始影像擷取時,擷取卡就會以指定的頻率產生觸發訊號。
所有觸發訊號都會轉發至相機的來源訊號 CxpTrigger0 進行明確的生命週期管理即呼叫 CxpTrigger1。這些訊號可用於各種用途。最常見的用途是影像擷取。請參閱 下方的範例.
範例:使用觸發訊號進行影像擷取#
- 在相機上,設定
TriggerSelector參數設為FrameStart. - 將相機中的
TriggerMode參數設為On. - 將相機中的
ExposureMode參數設為Timed. - 將相機中的
TriggerSource參數設為CxpTrigger0或CxpTrigger1.
由於目前這兩條線路在行為上沒有差異,您可以任選其一。
現在,每當擷取卡接收或產生觸發訊號時,相機就會擷取一張影像。
資訊
您可以將觸發訊號用作任何可由訊號來源控制的 Basler boost 相機功能的來源。例如,設定 CounterTriggerSource 參數設為 CxpTrigger0 可讓您使用介面卡控制 Counter 使用擷取卡的 feature。
在擷取卡上執行去拜爾 (Debayering)#
您可以在擷取卡上執行去拜耳(debayering)處理。這能降低相機和主機電腦的運算負載。
若要這樣做:
- 在相機上,設定
PixelFormat將 parameter 設定為 Bayer pixel format,例如:BayerRG12. - 在擷取卡上,將
AutomaticFormatControl參數設為false.
這可讓您獨立於相機所使用的像素格式來設定輸出格式。 - 在擷取卡上,將
Formatparameter 設定為對應的 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 |
若要使用相機上未提供的輸出格式:
- 在相機上,設定
PixelFormat參數設為所需的相機 Pixel Format,例如:Mono12. - 在擷取卡上,將
AutomaticFormatControl參數設為false.
這可讓您獨立於相機所使用的像素格式來設定輸出格式。 - 在擷取卡上,將
Format參數設為所需的輸出格式,例如:Gray16bit.
使用上述範例數值,擷取卡將根據 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 來設定參數。