矩的数学表示
关于一个点p的n阶矩可以定义为:
上面的定义只适应于有一个变量的函数,我们感兴趣是是二维图像,图像是具有两个维度。所以我将上述公式定义成依赖两个变量的公式:
这里f(x,y)就是实际的图像,不过这么假设图像的像素是连续的。实际的图像是离散的,所以我们需要将其离散化,离散的过程就是用求和取代积分:
这时图像的矩就等于(m+n),通常情况,我计算图像的矩默认是关于(0,0)点的,所以我们在许多地方是看不到p点。
矩的数学表示就是这么多啦。接下我们看看用图像的矩的应用;
图像矩的应用
先给出一张二值图像,作为材料。
二值图像
1、计算二值图像前景面积
当计算二值图像的前景面积时,可以计算二值图像的0阶矩来替代。
因为任何整数的0次幂都为1,所以
在二值图像中,你是1就是0,最后1被有效的累加到矩中。
2、计算二值图像前景的重心
为了找二值图像前景的重心,我们需要计算如下的一个坐标,可以用来表示二值图像的重心。
如何才能得到重心坐标呢?首先我们计算x,y坐标中f(x,y)=1,的和:
现在我们有了几个像素的x和y坐标的和。为了得到平均值,你需要除以像素的个数。像素的数量是图像的面积,即0阶矩。得到:
这项技术有趣的一点是它对噪音不太敏感。中心体可能会移动一点,但不会太多。
另外还有一些高阶矩,在opencv中用矩还可匹配。