Huモーメント(Hu moments)とは
平行移動、回転移動、拡大縮小、鏡映しても値が変わらない「モーメント不変量」のひとつ。(ただし、鏡映したときはh7の符号が反転する)
Huモーメントは7つのパラメータ[h1,h2,h3,h4,h5,h6,h7]をもつ。
平行移動、回転移動、拡大縮小、鏡映しても値が変わらない特徴から、
データ間の類似度を測るのに用いられる。
Huモーメントの定義
相当に汚い式。おそらく覚える必要はない。
h1=μ20+μ02h2=(μ20−μ02)2+4μ211h3=(μ30−3μ12)2+(3μ21−3μ03)2h4=(μ30+3μ12)2+(μ21+μ03)2h5=(μ30−3μ12)(μ30+3μ12)[(μ30+μ12)2−3(μ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)2−3(μ21+μ03)2]−(μ30−3μ12)(μ21+μ03)[3(μ30+μ12)2−(μ21+μ03)2]
Huモーメントの問題点
- 独立でない
単純なノルム(√h21+h22+h23+h24+h25+h26+h27等)では正確に比較できない
- 解像度により値が変わること
これは拡大縮小の際に考慮すべきである
参考
https://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#humoments
https://youtu.be/uEVrJrJfa0s