影象的反向投影圖是用輸入影象的某一位置上畫素值(多維或灰度)對應在直方圖的乙個bin上的值來代替該畫素值,所以得到的反向投影圖是單通的。用統計學術語,
輸出影象象素點的值是觀測陣列在某個分布(直方圖)下的概率。
其中b(xi)
表示在位置
xi上畫素對應的直方圖第
b(xi)
個bin
,直方圖共m個
bin,qu表示第u個bin的值。
還是以例子說明
(1)例如灰度影象如下
image=
0 1 2 34
5 6 78
9 10
118
9 14 15
(2)該灰度圖的直方圖為(bin指定的區間為[0,3),[4,7),[8,11),[12,16))
histogram=
4 4 6 2
(3)反向投影圖
back_projection=
4 4 4 4
4 4 4 4
6 6 6 6
6 6 2 2
例如位置(0,0)上的畫素值為0,對應的bin為[0,3),所以反向直方圖在該位置上的值這個bin的值4。
測試**如下:
1.選取關鍵區域
2.計算該區域的顏色概率分布--反向投影圖
3.用meanshift演算法找到下一幀的特徵區域
4.標記並重複上述步驟
該演算法的關鍵就是可以在目標大小發生改變的時候,可以自適應的調整目標區域繼續跟蹤
在進行cam****f和meanshift演算法的時候,需要輸入反向投影圖,這就要求有個很重要的預處理過程是計算反向投影圖。對應的函式為calcbackproject。所謂反向投影圖就是乙個概率密度圖。calcbackproject的輸入通常為目標區域的直方圖和待跟蹤影象的直方圖,輸出與待跟蹤影象大小相同,每乙個畫素點表示該點為目標區域的概率。這個點越亮,該點屬於物體的概率越大。這樣的輸入引數太適合做means演算法了。
**
OpenCV計算反向投影
反向投影概念的理解 首先,對上圖紅色方框的imgroi區域,計算灰度直方圖並進行歸一化,為了好解釋,這裡假設直方圖有5個bin 實際上我的程式為256個bin 歸一化範圍為0.0 255.0 實際上我的程式為0.0 1.0 畫素值的取值範圍是0 51,51 102,102 153,153 204,2...
反向投影(可能不對)
include stdafx.h include include include include pragma comment lib,cv.lib pragma comment lib,cvcam.lib pragma comment lib,cxcore.lib pragma comment l...
一 反向投影的原理說明(1)
目標 一 概念 反向投影是一種記錄給定影象中的畫素點如何適應直方圖模型畫素分布的方式。簡單的講,就是首先計算某一特徵的直方圖模型,然後使用模型去尋找影象中存在的該特徵。例如,你有乙個膚色直方圖 hue saturation直方圖 你可以用它來尋找影象中的膚色區域 1 直方圖反向投影矩陣的計算方法 什...