基于Hu不变矩图像检索的Matlab实现
图像检索是计算机视觉的一个重要研究领域。在大规模图像检索中,使用特征向量作为图像的描述符是一种常见的方法。然而,由于多个因素的影响,特征向量不同的维度和权重会导致检索结果的容易受到一些非关键因素的影响。此外,对于部分情况下,这些特征描述符难以适应图像的旋转、尺度、亮度等变化。针对这种情况,Hu不变矩被提出并应用于图像检索。
-
原理介绍
假设我们有一个N x N的二值图像I,其中每个像素的灰度值为0或1。为了计算Hu不变矩,我们首先需要计算若干几何变换后的中心距: -
零阶中心距:m00 = ∑∑ I(x,y)
-
一阶中心距:m10 = ∑∑ xI(x,y), m01 = ∑∑ yI(x,y)
-
二阶中心距:m20 = ∑∑ (x-m10)^2I(x,y), m11 = ∑∑(x-m10)(y-m01)I(x,y), m02 = ∑∑(y-m01)^2I(x,y)
其中,∑∑表示对整个图像进行求和。
我们可以利用这些中心距计算若干不变矩:
- 第一不变矩:m00^(-1/2) * m00
- 第二不变矩:m00^(-1) * m20
- 第三不变矩