opencv筆記 8 Haar特徵

2021-07-31 14:37:04 字數 1364 閱讀 2597

haar特徵由邊緣特徵、線性特徵、中心特徵和對角線特徵組合成特徵模板。特徵模板中有白色和黑色兩種矩形,模板的特徵值則為白色矩形畫素減去黑色矩形畫素之和。haar特徵反應了影象灰度變化的情況。

對於圖中a,b,d這類特徵v=sum(白)-sum(黑),而對於c來說則v=sum(白)-2*sum(黑)。

積分圖就是只遍歷一次影象就可以求出影象中所有區域畫素和的演算法。其主要思想是將影象從起點到各個點所形成的矩形區域的畫素之和作為乙個陣列的元素儲存起來,當要計算某個區域的畫素和時,則可以直接用公式計算。

haar-like特徵值的計算為兩個矩陣畫素和的差,若用積分圖計算,不管特徵矩形的尺度如何變換,所花費的時間都是常量。

積分圖構建:

(1)用s(i,j)表示行方向的累加和,初始化s(i,-1)=0;

(2)用ii(i,j)表示乙個積分影象,初始化ii(-1,i)=0;

(3)逐行掃瞄影象,遞迴計算每個畫素(i,j)行方向的累加和s(i,j)和積分影象ii(i,j)的值

s(i,j)=s(i,j-1)+f(i,j)

ii(i,j)=ii(i-1,j)+s(i,j)

(4)掃瞄影象一遍,當到達影象右下角畫素時,積分影象ii就構造好了。

積分圖構造好之後,影象中任何矩陣區域的畫素累加和都可以通過簡單運算得到如圖所示

若求得d區域的畫素和,則公式為:

sum(d)=ii(d)-ii(b)-ii(c)+ii(a)

3.haar-like矩形特徵擴充套件

擴充套件後的特徵大致分為4種型別:邊緣特徵、線特徵環、中心環繞特徵和對角線特徵:

在特徵值的計算過程中,黑色區域的權值為負值,白色區域的權值為正值。而且權值與矩形面積成反比(使兩種矩形區域中畫素數目一致)。

豎直矩陣特徵值計算:

對於豎直矩陣,與上面2處說的一樣。

45°旋角的矩形特徵計算:

對於45°旋角的矩形,我們定義rsat(x,y)為點(x,y)左上角45°區域和左下角45°區域的畫素和。公式表示為  

為了節約時間,減少重複計算,可按如下遞推公式計算:

OpenCV 計算Haar特徵個數

最早的haar特徵由papageorgiou c.等提出 a general framework for object detection 後來paul viola和michal jones提出利用積分影象法快速計算haar特徵的方法 rapid object detection using a b...

opencv中haar特徵檢測人臉(適合小白)

本文的例程是我第一次用opencv自帶的利用haar特徵人臉識別的分類器檔案進行人臉檢測的收穫,注意,前提是已經有了分類器檔案xml,僅僅是利用它來進行檢測的過程。希望能幫到有需求的人 haar特徵的人臉檢測 使用opencv自帶的xml分類器檔案 問題 1.分類器檔案的載入,使用的是opencvc...

opencv筆記 7 LBP特徵

區域性二值模式 local binary pattern,lbp 是一種描述影象紋理特徵的運算元,它具有旋轉和灰度不變性。一般不將lbp圖譜作為特徵向量用於分類識別,而是採用lbp特徵值譜的統計直方圖作為特徵向量用於分類識別。原始lbp是在3 3的視窗內,以視窗中心元素為閾值,比較周圍8個畫素,若大...