2012-10-04 113 views
1

我用Python寫的圖像分析程序,我試圖用cv.CalcOpticalFlowFarneback光流。我想通了大部分的東西和分析工作,但是,我想用一下flags參數。在簡歷的文件它說,國旗是一個整數,並說明如下:OpenCV的python中

flags – 
Operation flags that can be a combination of the following: 
OPTFLOW_USE_INITIAL_FLOW Use the input flow as an initial flow approximation. 
OPTFLOW_FARNEBACK_GAUSSIAN ... 

的問題是我怎麼設置標誌使用的任一選項或兩者?

回答

0

我要去猜測OPTFLOW_USE_INITIALFLOW | OPTFLOW_FARNEBACK_GAUSSIAN

管道符是按位或。執行標誌的常用方式是對每個標誌使用不同的2的冪。例如。如果OPTFLOW_USE_INITIALFLOW是2和OPTFLOW_FARNEBACK_GAUSSIAN是8然後他們的組合是1010二進制。

+0

感謝Koobz,它似乎正確的,但爲什麼你認爲這是2和8對1和3(二進制01和11)。換句話說,你爲什麼需要每個標誌都是2位數而不是1位。 – renat

+0

http://en.wikipedia.org/wiki/Bit_field解釋它可能比我好。每一位本質上都是切換特定標誌的獨有方式。因此,如果您有8位,並且每位對應某個標誌的打開和關閉,則可以緊湊地溝通所有256個組合,並輕鬆地回答問題,例如使用位掩碼啓用的第4位位置的標誌。例如。 0111 0100 = 0100,其!= 0和(因此通常 「真」)。 0111&1000 = 0,錯誤。 – Koobz