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