C ++函数是:
片刻时刻(InputArray数组,bool binaryImage = false)
第一个我理解它是什么,第二个它说:
binaryImage - 如果为true,则将所有非零图像像素视为1。该参数仅用于图像。
这究竟是什么意思?我说这对于二进制图像是真的,对于非二进制图像是假的吗?在我的应用程序中,我使用二进制图像来计算简单的时刻。
这意味着如果此值为true,则您插入的图像将被视为二进制图像,这意味着即使您具有大于1的值,它们也将被视为1。
I(x,y)> 0 = 1
I(x,y)== 0 = 0
如果您插入的值为false,则矩值中的值将实际值转换为力矩计算。
例如,假设您有以下3X3图像:
100 0 10
10 0 1
0 0 0
m00这是图像的区域将是:
如果标志为真,则我们有4个非零的像素,值为4。
如果该标志为假,我们将有100 + 10 + 10 + 1 = 121
你什么时候应该用什么?
让我们说我们的图像中有斑点。如果我们将图像视为二进制而不是时刻将为我们提供有关blob的空间信息。例如,m01 / m00和m10 / m00将给出物体的质心。
但是,如果我们将图像视为二进制,我们不会在瞬间为我们提供纹理/颜色信息。例如,m00 /(斑点中的像素数)=斑点的平均颜色。