2012-10-04 54 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