<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 手動PCB外觀檢查機(jī)的圖像采集與拼接

          手動PCB外觀檢查機(jī)的圖像采集與拼接

          作者: 時間:2011-04-22 來源:網(wǎng)絡(luò) 收藏

          3.1 基于AclivrMil的程序
          對Matrox進(jìn)行二次開發(fā)的通用軟件結(jié)構(gòu)如圖6所示。

          本文引用地址:http://www.ex-cimer.com/article/194983.htm

          f.JPG


          圖像采集程序的基本思路是:
          1)打開通信通道,即確定一個應(yīng)用對象(Application),并對每個應(yīng)用對象創(chuàng)建一個或多個系統(tǒng)對象(System)。
          2)初始化硬件資源,即為每個系統(tǒng)對象分配數(shù)據(jù)緩存(Data Buffer)、數(shù)據(jù)采集器(Digitizer)和數(shù)據(jù)顯示(Display)對象。
          3)啟動采集過程,即將圖像讀入數(shù)據(jù)緩存,并將緩存賦值給數(shù)組,通過對數(shù)組的處理實(shí)現(xiàn)對圖像的處理,圖像數(shù)據(jù)與數(shù)據(jù)顯示相關(guān)聯(lián)后就可以通過顯示控件或窗體顯示預(yù)處理后的結(jié)果。
          AetiveMIL可以讓開發(fā)者快速簡單地將一個圖像應(yīng)用程序和Windows用戶界面結(jié)合起來。應(yīng)用程序開發(fā)包含拖動和滾動工具放置以及加標(biāo)點(diǎn)和單擊配置,充分地減少代碼量。在.net framework3.0卡發(fā)環(huán)境下,安裝MIL開發(fā)包并正確配置后,Application、System、Image、ImageProcess、Display等組件將自動添加到工具欄。
          開發(fā)者將所需用的控件拖拽到圖像采集窗體上,一個Application,對應(yīng)于單鏡頭外觀機(jī),一個System,單窗體顯示——一個Disp-laly,為了提高CPU使用率應(yīng)啟用雙緩存異步采集——兩個ImageBuffer,及一個ImageProcess。
          3.2 雙緩存異步采集思想
          Matrox MeteorII圖像采集卡支持同步和異步兩種采集方式。
          同步采集方式適用于連續(xù)采集顯示圖像而不做運(yùn)算處理的情況,這是因?yàn)橥讲杉绞较?,在每次采集圖像之前,CPU都向采集卡發(fā)送采集同步信號,然后等待采集結(jié)束,所以在采集過程中CPU由于得不到圖像數(shù)據(jù)而只能處于等待狀態(tài)。由于CCD僅采集一幀圖像就需要40 ms左右,這與人的視覺滯留大致相當(dāng),所以在同步方式下無法保證采集和處理在40 ms內(nèi)完成,也就無法達(dá)到實(shí)時處理的要求。
          異步采集方式下,采集工作和計算機(jī)對圖像的處理工作可以同時進(jìn)行,即當(dāng)CPU處理當(dāng)前幀的圖像時,CCD攝像機(jī)可以進(jìn)行下一幀的圖像采集。因此,在程序編制時,需要一個緩存機(jī)制用來緩存當(dāng)前已采集完成的圖像和緩存CCD攝像機(jī)將要采集或正在采集的圖像,從而實(shí)現(xiàn)圖像采集與處理的并行工作。顯然,利用這種雙緩存采集方法既可以降低對硬件系統(tǒng)的要求,還可以大大提高系統(tǒng)的處理速度,滿足實(shí)時處理的要求。
          3.3 圖像采集代碼實(shí)現(xiàn)
          g.JPG
          h.JPG



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();