图像或轮廓的Hu矩的定义优缺点适用范围,并利用OpenCV的函数HuMoments()和matchShapes()实现Hu矩的计算和轮廓匹配
Posted 昊虹图像算法
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像或轮廓的Hu矩的定义优缺点适用范围,并利用OpenCV的函数HuMoments()和matchShapes()实现Hu矩的计算和轮廓匹配相关的知识,希望对你有一定的参考价值。
本文承接博主的上一篇博文:
什么叫图像或轮廓的空间矩、中心矩、归一化中心矩?并利用OpenCV的类Moments计算轮廓的这几个矩和质心位置
继续介绍Hu矩的相关知识。
Hu矩是由二阶和三阶中心距计算得到七个不变矩,Hu矩具有旋转、平移和缩放不变性,因此在图像具有旋转和放缩的情况下Hu矩具有更广泛的应用领域。
在博主的上一篇博文中介绍了归一化的中心矩的计算式。我们回顾一下:
我们令
n
u
j
i
=
η
j
i
nu_ji=η_ji
nuji=ηji ,则有Hu矩的七个矩的计算式如下:
h
u
[
0
]
=
η
20
+
η
02
h
u
[
1
]
=
(
η
20
−
η
02
)
2
+
4
η
11
2
h
u
[
2
]
=
(
η
30
−
3
η
12
)
2
+
(
3
η
21
−
η
03
)
2
h
u
[
3
]
=
(
η
30
+
η
12
)
2
+
(
η
21
+
η
03
)
2
h
u
[
4
]
=
(
η
30
−
3
η
12
)
(
η
30
+
η
12
)
[
(
η
30
+
η
12
)
2
−
3
(
η
21
+
η
03
)
2
]
+
(
3
η
21
−
η
03
)
(
η
21
+
η
03
)
[
3
(
η
30
+
η
12
)
2
−
(
η
21
+
η
03
)
2
]
h
u
[
5
]
=
(
η
20
−
η
02
)
[
(
η
30
+
η
12
)
2
−
(
η
21
+
η
03
)
2
]
+
4
η
11
(
η
30
+
η
12
)
(
η
21
+
η
03
)
h
u
[
6
]
=
(
3
η
21
−
η
03
)
(
η
21
+
η
03
)
[
3
(
η
30
+
η
12
)
2
−
(
η
21
+
η
03
)
2
]
−
(
η
30
−
3
η
12
)
(
η
21
+
η
03
)
[
3
(
η
30
+
η
12
)
2
−
(
η
21
+
η
03
)
2
]
\\beginarrayl hu[0]= \\eta _20+ \\eta _02 \\\\ hu[1]=( \\eta _20- \\eta _02)^2+4 \\eta _11^2 \\\\ hu[2]=( \\eta _30-3 \\eta _12)^2+ (3 \\eta _21- \\eta _03)^2 \\\\ hu[3]=( \\eta _30+ \\eta _12)^2+ ( \\eta _21+ \\eta _03)^2 \\\\ hu[4]=( \\eta _30-3 \\eta _12)( \\eta _30+ \\eta _12)[( \\eta _30+ \\eta _12)^2-3( \\eta _21+ \\eta _03)^2]+(3 \\eta _21- \\eta _03)( \\eta _21+ \\eta _03)[3( \\eta _30+ \\eta _12)^2-( \\eta _21+ \\eta _03)^2] \\\\ hu[5]=( \\eta _20- \\eta _02)[( \\eta _30+ \\eta _12)^2- ( \\eta _21+ \\eta _03)^2]+4 \\eta _11( \\eta _30+ \\eta _12)( \\eta _21+ \\eta _03) \\\\ hu[6]=(3 \\eta _21- \\eta _03)( \\eta _21+ \\eta _03)[3( \\eta _30+ \\eta _12)^2-( \\eta _21+ \\eta _03)^2]-( \\eta _30-3 \\eta _12)( \\eta _21+ \\eta _03)[3( \\eta _30+ \\eta _12)^2-( \\eta _21+ \\eta _03)^2] \\\\ \\endarray
hu[0]=η20+η02hu[1]=(η20−η02)2+4η112hu[2]=(η30−3η12)2+(3η21−η03)2hu[3]=(η30+η12)2+(η21+η03)2hu[4]=(η30−3η12)(η30+η12)[(η30+η12)2−3(η21+η03)2]+(3η21−η03)(η21+η03)[3(η30+η12)2−(η21+η03)2]hu[5]=(η20−η02)[(η30+η12)2−(η21+η03)2]+4η11(η30+η12)(η21+η03)hu[6]=(3η21−η03)(η21+η03)[3(η30+η12)2−(η21+ηyoucans 的 OpenCV 例程200篇198.基于不变矩的形状相似性检测
opencv计算两个轮廓之间hu矩相似程度,MatchShapes