openCV-矩()函数中的参数

OpenCV - parameters in moments() function

本文关键字:参数 函数 openCV-      更新时间:2023-10-16

c 函数是:

时刻矩(inputarray阵列,bool binaryimage = false)

我理解的第一个是,因为第二个说:

二进制图 - 如果是真的,则所有非零图像像素均被视为 1。该参数仅用于图像。

这到底是什么意思?我说仅对于二进制图像是正确的,而对于非二进制图像是错误的?在我的应用程序中,我使用二进制图像来计算简单的时刻。

这意味着如果此值是正确的,则您插入的图像将被视为二进制图像,即使您的值大于1,它们也会被视为1。

i(x,y)> 0 = 1

i(x,y)== 0 = 0

如果您插入的值比时刻中的值是错误的

例如,假设您有以下3x3图像:

100 0 10

10 0 1

0 0 0

m00是图像的区域:

如果标志是正确的,那么我们有4个非零的像素,值将为4个。

如果标志是错误的,我们将拥有100 10 10 1 = 121

什么时候应该使用什么?

可以说,我们的图像中有一个斑点。如果我们将图像视为二进制图像,那么瞬间将为我们提供有关斑点的空间信息。例如,M01/M00和M10/M00将为UST提供对象的质量中心。

但是,如果我们将图像视为二进制,那么我们比时刻会给我们纹理/颜色信息。例如m00/(斑点中的像素数)=斑点的平均颜色。