效果目前,我試圖瞭解的OpenCV的人臉檢測API DetectionBasedTracker
。裏面的代碼,我發現了定義偏移值及其對整數值
#define CALC_SUM_(p0, p1, p2, p3, offset) \
((p0)[offset] - (p1)[offset] - (p2)[offset] + (p3)[offset])
我不能弄清楚以下
(1)P0,P1,P2,P3是整數值。 (p0)[offset]
的回報值是多少?它有什麼作用?
(2)實際上偏移在圖像矩陣的一個行的整數的數目。假設圖像矩陣是480 x 640.在一行圖像數據中有640個整數值。對於第二行,偏移= 640。它被計算爲offset = pt.y * ((int)image.step/sizeof(int)) + pt.x
;通過更改offset value
,(p0)[offset]
如何起作用?
不,我已經檢查過。 po是一個整數。 – batuman 2014-12-04 09:41:37
尋找'cascadedetect.hpp',它看起來非常像'p0'是一個指向一個整數的_pointer_。在'struct Feature'中看到'const int * p [RECT_NUM] [4];'行。你認爲這是一個整數的基礎是什麼? – Tony 2014-12-04 21:05:31
是的,你是對的。我在行號190處使用LBPEvaluator。實際上,p是const int * p [16];內部特徵結構。每個p [i]是指向整數的指針。但只指向一個整數。那麼(p0)[offset]是做什麼的?因爲它只指向一個整數。 – batuman 2014-12-05 04:26:47