轮廓和区域、原始(空间)和中心图像时刻

信息处理 图像处理
2022-01-06 17:28:59

我最近开始使用图像时刻进行二值图像的图像处理。我读到轮廓矩是周长面积矩是面积这些原始时刻均由以下公式给出:0th0th

Mij=xyxiyj

这意味着如果我有这样的图像(但二进制,前景像素以蓝色显示),则时刻将对应于周长,因为它是轮廓的图像:0th

外围图像

另一方面,如果我有这样的图像(前景显示为 while),我将对象的面积作为时刻:0th

面积图

由于我想使用轮廓来获得更多属性,因此我还计算了高阶(阶)原始轮廓矩。我想用这些来获得中心时刻。1st2nd3rd

我用来获得中心时刻的公式是:

μ00=M00

μ01=0

μ10=0

μ11=M11M00xcyc=M11M00(M10M00)(M01M00)

计算中心矩的公式是使用原始矩我的问题是:哪些原始矩用于计算中心矩、面积轮廓. 我的猜测是面积矩,因为阶中心矩也等于面积,这实际上是阶面积矩。0th0th

另外,我可以根据轮廓原始矩计算中心矩吗?

2个回答

实际上,我很惊讶它确实很难正确定义轮廓与图像的“正常”非轮廓时刻。看了一堆资料后,得出我的结论。


首先,为了了解时刻,特别是空间(OP 称之为“原始”)、中心中心归一化时刻的区别和用法,我找到了两个非常好的材料:

  • (手册)Johannes Kilian:“简单的图像分析瞬间”

    优秀的手册,简单的数学。不要被积分吓到——你可以把它们全部读成总和。

    此外,它还简要概述了用于操作此时刻的 OpenCV 函数。这是非常旧的材料(2001 年),所以它所指的 OpenCV 手册有点旧,但它仍然有帮助。

    还有精彩的第三章,具体说明了用哪个时刻来描述一个时刻的哪个特征。

  • (图像处理博客)Utkarsh:图像时刻

    简单、简短、友好。我之前在这个博客上发现了很多好资料。

    免责声明 AI Shack似乎在某些时候离线。这里AI Shack作者的主页,他谈到了这个项目,所以它似乎仍然受到支持。我希望它尽快恢复在线,但如果不是,也许可以通过作者的网页进行跟踪。


简而言之,空间矩给出了关于图像中对象的信息,即与对象位置相关(依赖)

通过将用于计算的“坐标系”的原点移动到所讨论对象的质心(重心)来调整中心矩以实现平移不变性。

最后,中心归一化矩按对象的面积进行缩放,因此除了平移不变性外,还具有尺度不变性。


现在是实际的问题部分:轮廓矩呢?

这部分的扣除主要是基于

以及这些来源中最重要的引述:

轮廓的矩以相同的方式定义,但使用格林公式计算。

(OpenCV 参考手册)

在平面几何,特别是面积测量中,格林定理可用于仅通过对周长积分来确定平面图形的面积和质心

(绿色维基)

而且,cvContourMoments现在只是cvMoments.

(布拉德斯基·凯勒的书)

基于此,我推断轮廓矩不是指对象轮廓的特殊度量,而是指计算图像矩的特定方式,仅使用轮廓信息(而不是整个图像的像素信息)。

在基本情况下,不同之处在于两者的计算方式。

  • 我的猜测是直接实现将通过逐像素求和来工作,直接实现公式。该对象预计将被填充。
  • 我对轮廓矩的猜测是首先确定图像轮廓(请参阅 OpenCV 手册),然后将格林定理应用于轮廓数据。

这将使真实图像的测量值略有不同,因为这些方法在以下方面会有所不同:对噪声、缩放、离散化(像素网格而不是连续图像)的敏感性。此外,速度:使用轮廓计算比使用直接方法更快。我推测,对于没有噪声的(理想化的)连续黑白图像,它们会给出完全相等的结果。

所以,回答你的问题:时刻应该是相同的(因为噪音等而不同)。您可以使用两种方法计算的空间(原始)矩来确定中心矩(仍将描述同一事物)。

从 1994 年开始,这篇文章的存在进一步支持了这一主张(我只阅读了摘要,但应该是非常相关的,甚至摘要也是信息性的):


关于获得周长测量的注意事项:我认为,要获得实际上只是轮廓面积的“周长”,我会计算0th物体轮廓的图像的时刻,但将轮廓视为非常薄的物体,而不是“物体的轮廓”

如果您进一步使用这一刻,所有进一步的测量当然会有所不同。

无论轮廓矩或面积矩,中心矩均指在居中参考系中计算的矩,即以现象平均值为中心的框架。

在您的情况下,这意味着您需要计算一阶矩(μ0,1,μ1,0)(轮廓或面积),然后使用计算后续时刻μ=(μ01,μ10)作为原点。这是一个简单的平移(坐标的减法)。

同样相关的是,这个关于词汇的问题。