Huモーメントについて

Huモーメント(Hu moments)とは

平行移動、回転移動、拡大縮小、鏡映しても値が変わらない「モーメント不変量」のひとつ。(ただし、鏡映したときはh7の符号が反転する)
Huモーメントは7つのパラメータ[h1,h2,h3,h4,h5,h6,h7]をもつ。

平行移動、回転移動、拡大縮小、鏡映しても値が変わらない特徴から、
データ間の類似度を測るのに用いられる。

Huモーメントの定義

相当に汚い式。おそらく覚える必要はない。
h1=μ20+μ02h2=(μ20μ02)2+4μ112h3=(μ303μ12)2+(3μ213μ03)2h4=(μ30+3μ12)2+(μ21+μ03)2h5=(μ303μ12)(μ30+3μ12)[(μ30+μ12)23(μ21+μ03)2]+3(μ21μ03)(μ21+μ12)[3(μ30+μ12)2(μ21+μ03)2]h6=(μ20μ02)[(μ30+μ12)2(μ21+μ03)2]+4μ11(μ30+μ12)(μ21+mu03)h7=(3μ21μ03)(μ30+μ12)[(μ30+μ12)23(μ21+μ03)2](μ303μ12)(μ21+μ03)[3(μ30+μ12)2(μ21+μ03)2]

Huモーメントの問題点

  • 独立でない
    単純なノルム(h12+h22+h32+h42+h52+h62+h72等)では正確に比較できない
  • 解像度により値が変わること
    これは拡大縮小の際に考慮すべきである

参考

https://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#humoments
https://youtu.be/uEVrJrJfa0s