基于DSP的手勢(shì)識(shí)別電視遙控器設(shè)計(jì)
通過(guò)這種處理方法,原圖像中的小塊噪聲和椒鹽噪聲基本被消除,手部圖像邊緣的某些像素點(diǎn)也會(huì)被當(dāng)作噪聲消除,但是不影響后續(xù)處理。經(jīng)過(guò)噪聲消除后的圖像如圖10( a)所示。使用同樣的處理算法,可以得到后一幀的圖像處理結(jié)果如圖10( b)所示。
本文引用地址:http://www.ex-cimer.com/article/271879.htm3. 2特征提取及動(dòng)作識(shí)別
獲取只含手部運(yùn)動(dòng)區(qū)域的圖像Hk( x,y)和Hk+1( x,y)后,掃描出手部圖像邊界,通過(guò)比較與計(jì)算判斷手?jǐn)[放位置和區(qū)域中心位置Pk( xk,yk)和Pk+1( xk+1,yk+1)。手部擺放位置可以判斷手的上下或是左右運(yùn)動(dòng)。圖像處理和特征提取流程圖如圖11所示。
( 1) Hk+1( x,y )和Hk( x,y )是相同的縱向擺放位置,手部在左右運(yùn)動(dòng)。
( 2)根據(jù)列坐標(biāo)的大小來(lái)判斷手左右方向的移動(dòng)如下:
判斷上下運(yùn)動(dòng)的算法與判斷左右類(lèi)似。若出現(xiàn)無(wú)法判斷的情況,則重新采集圖像,進(jìn)行處理和判斷,直到能夠判斷方向?yàn)橹埂?/p>
圖11圖像處理算法流程圖
3. 3紅外遙控算法原理
本系統(tǒng)選擇最常用的一種編碼方式uPD6121進(jìn)行學(xué)習(xí)、解碼和發(fā)射。紅外遙控器的紅外信號(hào)一般都是通過(guò)38~40kHz的載波調(diào)制而成。先對(duì)接收到的紅外信號(hào)進(jìn)行解調(diào),再記錄遙控編碼信號(hào)的脈沖寬度。學(xué)習(xí)子程序的流程圖如圖12所示。采用計(jì)數(shù)器對(duì)信號(hào)高低電平計(jì)數(shù)的方法采集數(shù)據(jù)并保存。
發(fā)射模塊根據(jù)DSP2發(fā)送的指令找到對(duì)應(yīng)的編碼信號(hào)在外擴(kuò)RAM的位置,將編碼調(diào)入內(nèi)存,然后通過(guò)編碼發(fā)送子程序,將編碼調(diào)制在38 kHz載波上發(fā)送出去。用定時(shí)中斷0產(chǎn)生38 kHz的載波信號(hào),用學(xué)習(xí)到的遙控編碼信號(hào)的低電平去控制載波輸出,此時(shí)定時(shí)器0定時(shí)長(zhǎng)度由相應(yīng)的遙控信號(hào)低電平寬度計(jì)數(shù)值確定。如果需發(fā)射的遙控信號(hào)為高電平,關(guān)定時(shí)中斷0;如果為低電平,則開(kāi)定時(shí)中斷0,從而實(shí)現(xiàn)遙控信號(hào)的脈寬調(diào)制發(fā)射。發(fā)射子程序流程如圖13所示。
圖12學(xué)習(xí)子程序流程圖
圖13發(fā)射子程序流程圖
3. 4網(wǎng)卡驅(qū)動(dòng)程序及上位機(jī)軟件設(shè)計(jì)
3. 4. 1網(wǎng)卡驅(qū)動(dòng)程序及UDP協(xié)議實(shí)現(xiàn)
RTL8019AS已經(jīng)實(shí)現(xiàn)以太網(wǎng)通信物理層功能,只需初始化芯片相應(yīng)的寄存器,編寫(xiě)DSP下驅(qū)動(dòng),便可啟動(dòng)RTL8019AS.本系統(tǒng)采用TCP /IP協(xié)議族中的UDP協(xié)議( user datagram protocol)進(jìn)行通信,實(shí)現(xiàn)通過(guò)網(wǎng)絡(luò)把DSP采集到的圖像信息發(fā)送到上位機(jī)。
3. 4. 2上位機(jī)軟件編寫(xiě)
上位機(jī)軟件采用C#語(yǔ)言編寫(xiě),實(shí)現(xiàn)UDP通信協(xié)議。上位機(jī)軟件實(shí)現(xiàn)接收下位機(jī)的數(shù)據(jù),還原圖像數(shù)據(jù)并顯示等功能。同時(shí),上位機(jī)還可以向下位機(jī)發(fā)送命令,方便系統(tǒng)調(diào)試。
3. 4. 3圖像數(shù)據(jù)發(fā)送及還原
下位機(jī)采用UDP發(fā)送數(shù)據(jù),把數(shù)據(jù)的每一行作為一個(gè)UDP數(shù)據(jù)包,一幅圖像分成100個(gè)數(shù)據(jù)包進(jìn)行發(fā)送。為了讓上位機(jī)完整接收一幅圖像,在每幅圖像開(kāi)始發(fā)送之前,先發(fā)送一個(gè)規(guī)定的幀開(kāi)頭數(shù)據(jù)包,在每一幅圖像發(fā)送完畢之后,也發(fā)送一個(gè)規(guī)定幀結(jié)尾數(shù)據(jù)包。上位機(jī)根據(jù)這些標(biāo)定將100個(gè)數(shù)據(jù)包利用C#語(yǔ)言的相關(guān)函數(shù),轉(zhuǎn)換一定的圖片格式,在上位機(jī)進(jìn)行顯示。
紅外遙控器相關(guān)文章:紅外遙控器原理萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼
攝像頭相關(guān)文章:攝像頭原理
評(píng)論