SPCA563B實(shí)現(xiàn)圖像識別系統(tǒng)
2 系統(tǒng)軟件設(shè)計
本圖像識別系統(tǒng)的識別功能主要通過軟件系統(tǒng)來實(shí)現(xiàn)。為了提高程序的可移植性,為將來該系統(tǒng)功能擴(kuò)展預(yù)留空間,整個軟件系統(tǒng)采用分模塊、分層次的方法編寫程序,采用匯編語言實(shí)現(xiàn)對寄存器的讀/寫以及對中斷的控制,并為上層的開發(fā)提供靈活的接口。上層采用C語言編寫,通過調(diào)用底層函數(shù)來間接對硬件資源進(jìn)行操作。這樣編寫程序使整個系統(tǒng)結(jié)構(gòu)清晰,程序可移植性和可擴(kuò)展性增強(qiáng),而且占用硬件資源少,為系統(tǒng)功能的擴(kuò)展和進(jìn)一步開發(fā)預(yù)留充分的空間。
整個軟件系統(tǒng)由主程序、圖像識別功能模塊子程序、中斷服務(wù)子程序和語音輸出子程序等組成。主程序負(fù)責(zé)整個系統(tǒng)的協(xié)調(diào)和控制工作,通過調(diào)用不同的子程序來實(shí)現(xiàn)不同的功能。主程序流程如圖7所示。
![SPCA563B實(shí)現(xiàn)圖像識別系統(tǒng)](http://editerupload.eepw.com.cn/fetch/20140120/219994_3_0.jpg)
為突出系統(tǒng)的特點(diǎn),下面通過手勢識別的實(shí)例來重點(diǎn)描述圖像識別原理。手勢識別包含兩個步驟:手形的輪廓跟蹤,提取其輪廓的相關(guān)數(shù)據(jù);手勢的識別,在上一步得到的數(shù)據(jù)的基礎(chǔ)上進(jìn)行分析判斷而得到結(jié)果。
2.1 輪廓跟蹤算法實(shí)現(xiàn)
輪廓跟蹤的目的是獲得圖像的外部輪廓特征(包括目標(biāo)物體邊緣點(diǎn)的坐標(biāo)和方向),為圖像的形狀分析做準(zhǔn)備。SPCA563B的DSP針對膚色有一系列的顏色處理,這樣系統(tǒng)就可以方便圖像轉(zhuǎn)化為膚色與非膚色的二值圖像。通過對暫存在SRAM中的二值圖像進(jìn)行數(shù)據(jù)分析,來提取手形的邊緣輪廓。
輪廓跟蹤算法步驟如下:
?、侔磸纳系较?、從左到右的順序掃描圖像,尋找第一個非白像素作為邊界起始點(diǎn)A[0],記錄A[0]點(diǎn)的坐標(biāo)(A[0].x,A[0].y)。A[0]是具有最小行和列值的邊界點(diǎn)。再定義一個掃描方向變量dir,該變量用于記錄上一步中沿著前一個邊界點(diǎn)到當(dāng)前邊界點(diǎn)的移動方向。其初始化取值為A[0].dir=7;掃描方向定義如圖8所示。
![SPCA563B實(shí)現(xiàn)圖像識別系統(tǒng)](http://editerupload.eepw.com.cn/fetch/20140120/219994_3_1.jpg)
假設(shè)當(dāng)前的坐標(biāo)為(x,y),則其8個鄰域坐標(biāo)如下:
![SPCA563B實(shí)現(xiàn)圖像識別系統(tǒng)](http://editerupload.eepw.com.cn/fetch/20140120/219994_3_2.jpg)
評論