SPCA563B實(shí)現圖像識別系統
2 系統軟件設計
本圖像識別系統的識別功能主要通過(guò)軟件系統來(lái)實(shí)現。為了提高程序的可移植性,為將來(lái)該系統功能擴展預留空間,整個(gè)軟件系統采用分模塊、分層次的方法編寫(xiě)程序,采用匯編語(yǔ)言實(shí)現對寄存器的讀/寫(xiě)以及對中斷的控制,并為上層的開(kāi)發(fā)提供靈活的接口。上層采用C語(yǔ)言編寫(xiě),通過(guò)調用底層函數來(lái)間接對硬件資源進(jìn)行操作。這樣編寫(xiě)程序使整個(gè)系統結構清晰,程序可移植性和可擴展性增強,而且占用硬件資源少,為系統功能的擴展和進(jìn)一步開(kāi)發(fā)預留充分的空間。
整個(gè)軟件系統由主程序、圖像識別功能模塊子程序、中斷服務(wù)子程序和語(yǔ)音輸出子程序等組成。主程序負責整個(gè)系統的協(xié)調和控制工作,通過(guò)調用不同的子程序來(lái)實(shí)現不同的功能。主程序流程如圖7所示。

為突出系統的特點(diǎn),下面通過(guò)手勢識別的實(shí)例來(lái)重點(diǎn)描述圖像識別原理。手勢識別包含兩個(gè)步驟:手形的輪廓跟蹤,提取其輪廓的相關(guān)數據;手勢的識別,在上一步得到的數據的基礎上進(jìn)行分析判斷而得到結果。
2.1 輪廓跟蹤算法實(shí)現
輪廓跟蹤的目的是獲得圖像的外部輪廓特征(包括目標物體邊緣點(diǎn)的坐標和方向),為圖像的形狀分析做準備。SPCA563B的DSP針對膚色有一系列的顏色處理,這樣系統就可以方便圖像轉化為膚色與非膚色的二值圖像。通過(guò)對暫存在SRAM中的二值圖像進(jìn)行數據分析,來(lái)提取手形的邊緣輪廓。
輪廓跟蹤算法步驟如下:
?、侔磸纳系较?、從左到右的順序掃描圖像,尋找第一個(gè)非白像素作為邊界起始點(diǎn)A[0],記錄A[0]點(diǎn)的坐標(A[0].x,A[0].y)。A[0]是具有最小行和列值的邊界點(diǎn)。再定義一個(gè)掃描方向變量dir,該變量用于記錄上一步中沿著(zhù)前一個(gè)邊界點(diǎn)到當前邊界點(diǎn)的移動(dòng)方向。其初始化取值為A[0].dir=7;掃描方向定義如圖8所示。

假設當前的坐標為(x,y),則其8個(gè)鄰域坐標如下:

評論