1. 程式人生 > >OpenCV手勢識別-手掌特徵提取

OpenCV手勢識別-手掌特徵提取

本文對OpenCV輪廓凸包檢測以及參考程式碼兩個部分進行合併。並加入自己的影象預處理,包括採集、去背景和二值化。

實現了手掌的特徵點提取。

圖1 原始影象

步驟1 影象採集

紅外攝像頭採集回來的影象。基本上背景全部被過路掉。省掉用RGB攝像頭,接著還要HSV膚色檢測的步驟


圖2 去背景的二值化影象

步驟2 去背景、二值化

首先膨脹5個畫素點,避免手指短截。接著選取最大輪廓,將最大輪廓重新畫出來,過濾掉其它小輪廓,即背景噪聲。


圖3 近似多邊形

步驟3 獲取近似多邊形

將二值化的影象轉化成近似多邊形。將手指邊緣直線化。從而在第5步驟中去掉不需要的輪廓缺陷。


圖4 輪廓凸包

步驟4 獲取輪廓凸包。OpenCV自帶的工程,及之前提到的

OpenCV輪廓凸包檢測裡面有很詳細的解釋。


圖5 凸包缺陷

步驟5 在之前幾步的基礎上,獲取凸包缺陷(藍色點)。綠色點為缺陷起點。

我的工程用的紅外攝像頭。如果你用RGB攝像頭,要將Segmentation部分替換,可以參考網上的HSV膚色檢測程式。

附原始碼: