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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > STM32的條狀指紋采集與拼接系統(tǒng)

          STM32的條狀指紋采集與拼接系統(tǒng)

          作者: 時(shí)間:2012-12-07 來源:網(wǎng)絡(luò) 收藏


          2 系統(tǒng)軟件設(shè)計(jì)
          2.1 軟件總體設(shè)計(jì)
          系統(tǒng)上電后,進(jìn)行初始化,并進(jìn)入低功耗等待階段。在低功耗階段,采用低速檢測(cè)手指,即間隔一段較長(zhǎng)時(shí)間發(fā)送一次手指檢測(cè)指令,如果檢測(cè)到有手指,則提高的頻率,進(jìn)入及拼接流程,否則繼續(xù)等待一段時(shí)間后再次檢測(cè)。軟件總體流程如圖2所示。

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

          c.JPG


          為提高和拼接的效率,將指紋的幀采集和拼接作為兩個(gè)線程進(jìn)行并行處理。由于指紋的采集采用SPI的DMA方式進(jìn)行,因此MCU可以以較少的時(shí)間來介入查詢采集是否結(jié)束,大部分時(shí)間用在復(fù)雜度較高的拼接部分。指紋采集的第一幀因?yàn)檫€沒有得到可以拼接的數(shù)據(jù),而拼接的最后一幀不需要再進(jìn)行指紋序列的采集,因此這兩個(gè)部分的操作是相對(duì)獨(dú)立的。而其他時(shí)刻,指紋的第N幀采集和第N-1幀的拼接是并行進(jìn)行的。由于采用DMA方式進(jìn)行數(shù)據(jù)傳送,采集和拼接并行處理,需要兩個(gè)指紋幀Buffer來存儲(chǔ)采集到的指紋幀數(shù)據(jù),其中一個(gè)供采集使用,另外一個(gè)供拼接使用,在進(jìn)行完一次采集和拼接的并行操作后,對(duì)兩個(gè)Buffer進(jìn)行交換使用。
          指紋采集的結(jié)束有兩種條件,一種為手指離開傳感器(即不再檢測(cè)到指紋),另一種為達(dá)到設(shè)定的最大指紋有效高度(這里設(shè)為288像素,可包含較大指紋有效面積)。當(dāng)達(dá)到上述條件的任何一個(gè)時(shí),可判斷指紋采集結(jié)束。指紋采集和拼接完成后,對(duì)拼接完成后的指紋圖像進(jìn)行有效性判斷,如果為有效指紋圖像,則進(jìn)行輸出,否則放棄并給出出錯(cuò)提醒。
          2.2
          由于環(huán)境的差異,采集到的指紋序列可能引入一定的噪聲。為了消除噪聲帶來的差異,需要對(duì)指紋序列進(jìn)行2D高斯濾波,模板為:
          d.JPG
          濾波后的指紋序列,根據(jù)灰度紋理信息進(jìn)行匹配搜索,由于采集環(huán)境的差異,需進(jìn)行一定處理以適應(yīng)灰度值差異。這里采用MAD準(zhǔn)則對(duì)第N幀和第N-1幀進(jìn)行匹配,具體如下:
          e.JPG
          式中H和W分別為灰度匹配區(qū)的像素高度和寬度,PN(i,j)為第N幀指紋在(i,j)處的灰度值,PN-1(i+u,j+v)為第N-1幀指紋經(jīng)過(u,v)位移后在(i,j)處的灰度值,pmeanN和pmeanN-1為第N幀和第N-1幀的圖像灰度平均值。為了節(jié)約存儲(chǔ)空間,第N-1幀指紋序列從目標(biāo)指紋圖像緩存中提取。流程如圖3所示。

          f.JPG



          評(píng)論


          相關(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); })();