處理->放回。 第二種結(jié)合Windows的消息隊(duì)列,在此處再給一個(gè)“處理隊(duì)列”,給處理一個(gè)緩沖時(shí)間。 這里的處理包括常見的圖像處理" /> 秦皇島Basler巴斯勒智能相機(jī)維修-黃頁88網(wǎng)

国产三级网站视频在在线播放,国产成人av无码精品,丁香伊人,你去啪婷婷色综合,77777亚洲午夜久久多喷,邻居寂寞人妻中文字幕,日本黄色网站在线视频

Hi,歡迎來到黃頁88網(wǎng)!
當(dāng)前位置:首頁 > 蘇州技優(yōu)電子技術(shù)服務(wù)有限公司 > 供應(yīng)產(chǎn)品 > 秦皇島Basler巴斯勒智能相機(jī)維修

秦皇島Basler巴斯勒智能相機(jī)維修

更新時(shí)間:2025-09-03 [舉報(bào)]

工業(yè)相機(jī)中斷響應(yīng)如何操作?
當(dāng)相機(jī)一幀采集完成后,自動(dòng)跳轉(zhuǎn)進(jìn)入中斷回調(diào)函數(shù),這里分了兩種中斷回調(diào)函數(shù)。
種為簡(jiǎn)單的取Buffer->處理->放回。
第二種結(jié)合Windows的消息隊(duì)列,在此處再給一個(gè)“處理隊(duì)列”,給處理一個(gè)緩沖時(shí)間。
這里的處理包括常見的圖像處理、計(jì)算和顯示及RawData拼裝為圖像等用到Buffer的地方。
前面也說過,常用的是中斷響應(yīng)處理,除此之外,自己去查詢Buffer填充狀態(tài)并作相關(guān)同步操作在某些場(chǎng)合也會(huì)用到,這個(gè)請(qǐng)查詢不同相機(jī)SDK給出的同步方案。
差不多所有的工業(yè)相機(jī)SDK都是這樣的編程模型和流程,AVT 1394相機(jī)和Basler Camera Link相機(jī)和AVT GigE相機(jī)相關(guān)代碼在筆者網(wǎng)站可下載,還有之前講的Basler Pylon SDK相機(jī)編程,他們基本流程都是一樣,恕不詳述!

一、工業(yè)相機(jī)編程模型和流程
不同的工業(yè)相機(jī)提供不同的編程接口(SDK),盡管不同接口不同相機(jī)間編程接口各不相同,他們實(shí)際的API結(jié)構(gòu)和編程模型很相似,了解了這些再對(duì)工業(yè)相機(jī)編程就很簡(jiǎn)單了。
DMA技術(shù):
DMA是一種高速的數(shù)據(jù)傳輸操作,允許在外部設(shè)備和存儲(chǔ)器之間直接讀寫數(shù)據(jù),既不通過CPU,也不需要CPU干預(yù)。整個(gè)數(shù)據(jù)傳輸操作在一個(gè)稱為"DMA控制器"的控制下進(jìn)行的。CPU除了在數(shù)據(jù)傳輸開始和結(jié)束時(shí)做一點(diǎn)處理外,在傳輸過程中CPU可以進(jìn)行其他的工作。這樣,在大部分時(shí)間里,CPU和輸入輸出都處于并行操作。因此,使整個(gè)計(jì)算機(jī)系統(tǒng)的效率大大提高。
對(duì)于工業(yè)相機(jī)來說,當(dāng)CMOS或CCD芯片曝光然后將數(shù)據(jù)轉(zhuǎn)到相機(jī)緩存后,這時(shí)候DMA會(huì)負(fù)責(zé)將緩存中數(shù)據(jù)保存到硬盤上位置,正好滿足相機(jī)高速大數(shù)據(jù)的傳輸。一般都會(huì)使用DMA來完成實(shí)時(shí)的數(shù)據(jù)采集和保存。
多數(shù)時(shí)候,DMA控制器存在各種接口的圖像采集卡中,包括1394/GigE/USB/Camera Link等,這些采集卡有自己的時(shí)間控制單元完成和相機(jī)曝光的同步,并控制DMA的存取行為。

需要說明如下幾點(diǎn):
1.這里的初始隊(duì)列為1-10,都是初始分配為DMA隊(duì)列的,這個(gè)內(nèi)存分配和釋放過程有的SDK是自己負(fù)責(zé)的,有的則需要用戶自己分配和釋放,SDK只負(fù)責(zé)托管使用。
2.一般開始注冊(cè)一個(gè)中斷處理函數(shù),當(dāng)“準(zhǔn)備隊(duì)列”填充完成會(huì)自動(dòng)跳轉(zhuǎn)到中斷函數(shù)中,借此完成同步操作。也可以是用戶自己維護(hù)同步結(jié)構(gòu)體,使用查詢和等待的方式判斷“準(zhǔn)備隊(duì)列”頭是否填充完成,是否該用戶程序獲取數(shù)據(jù)和處理了。
3.如果用戶處理任務(wù)非常簡(jiǎn)單,可以去掉“處理隊(duì)列”,每次直接GetFrame->處理->PutFrame。如果用戶處理任務(wù)比較復(fù)雜而不希望出現(xiàn)丟幀的現(xiàn)象,則需要用戶使用“處理隊(duì)列”來保存所有可用的Buffer。
4.這里隊(duì)列也只是能夠解決處理速度比采集速度慢少許的情況,主要是對(duì)不同處理速度做平均來采集和處理同步。如果每一幀的處理時(shí)間太長(zhǎng),這時(shí)候“DMA隊(duì)列” Buffer全部轉(zhuǎn)移到“處理隊(duì)列” Buffer,就會(huì)出現(xiàn)異常情況,這時(shí)不同的相機(jī)會(huì)有不同的處理方法。

如圖,每個(gè)相機(jī)可能有不同的流采集器(Grab Streamer)或同一接口上安裝了多個(gè)相機(jī)(也對(duì)應(yīng)多個(gè)流采集器),對(duì)應(yīng)多個(gè)通道(Channel)。對(duì)每個(gè)通道來說,在實(shí)際采集時(shí)數(shù)據(jù)傳輸實(shí)際上是拆分成如圖的數(shù)據(jù)包(Packet) RawData形式傳遞的,內(nèi)存中存儲(chǔ)形式為一維數(shù)組,在每一幀圖像的起始存在不同的標(biāo)識(shí)表明一幀的開始和結(jié)束,每一個(gè)Packet都有標(biāo)識(shí)表明當(dāng)前所屬的通道。為了顯示圖像,用戶程序需要重新將一維數(shù)組數(shù)據(jù)拼裝成圖像形式,這一過程由用戶完成,通??山柚鶲penCV或MIL等圖像處理包完成該操作。

編程模型和流程
對(duì)于相機(jī)來說,常見編程時(shí)我們關(guān)注三個(gè)對(duì)象——相機(jī)對(duì)象、采集對(duì)象、參數(shù)對(duì)象。
相機(jī)對(duì)象(Camera Object):負(fù)責(zé)相機(jī)的連接、斷開等工作。
采集對(duì)象(Grab Streamer):負(fù)責(zé)相機(jī)的采集隊(duì)列分配、相機(jī)單幀、連續(xù)采集。
參數(shù)對(duì)象(Parameter Object):負(fù)責(zé)相機(jī)參數(shù)的設(shè)置。
不同的SDK可能安排不一樣,一般來說要不是三種對(duì)象的功能合并到“相機(jī)對(duì)象”中,要不是分為三種對(duì)象,其實(shí)采集對(duì)象和參數(shù)對(duì)象都是在“相機(jī)對(duì)象”上封裝而來。

可以看到相機(jī)編程需要做三方面工作:
1.初始化操作
先初始化相機(jī)驅(qū)動(dòng)Com環(huán)境,然后遍歷得到當(dāng)前的相機(jī)列表,根據(jù)相機(jī)ID或List 編號(hào)選擇對(duì)應(yīng)相機(jī)。
之后連接相機(jī),先設(shè)置本次采集的相機(jī)參數(shù)(幀速、圖像大小、縮放比等),然后是分配和注冊(cè)當(dāng)前DMA隊(duì)列,這里有的是用戶完成,有的是SDK完成。
之后先開啟DMA邏輯等待相機(jī)采圖,然后使相機(jī)開始工作采圖,整個(gè)系統(tǒng)就按照之前工作流程運(yùn)作起來了,許多SDK將“開啟DMA”和“相機(jī)開始工作”合并為“開始采集”。
2.結(jié)束操作
先停止相機(jī)工作再關(guān)閉DMA邏輯,許多SDK將“開啟DMA”和“相機(jī)開始工作”合并為“結(jié)束采集”。
然后清理DMA隊(duì)列,和分配時(shí)對(duì)應(yīng),這里有的是用戶完成,有的是SDK完成。
后斷開相機(jī)并清理工作環(huán)境。

標(biāo)簽:杭州Basler巴斯勒SPI相機(jī)維修郴州Basler巴斯勒相機(jī)維修
蘇州技優(yōu)電子技術(shù)服務(wù)有限公司
  • 皮舞武
  • 江蘇省蘇州吳中區(qū)甪直鎮(zhèn)甪勝路30-12號(hào)
  • 18112603420
  • 18112603420
信息由發(fā)布人自行提供,其真實(shí)性、合法性由發(fā)布人負(fù)責(zé)。交易匯款需謹(jǐn)慎,請(qǐng)注意調(diào)查核實(shí)。
留言詢價(jià)
×