

顔の特徴点を検出するプログラムとして [Facemark:Facial Landmark Detection using
opencv](https://www.learnopencv.com/facemark-facial-landmark-detection-using-
opencv/) を参考にしており、そこから口だけ線で描かれるようにしました。

その際に、口の重心(中心)を求めたいのですがどうすればいいのか分かりません。  
どのようにすればいいのか教えてください。


CC BY-SA 4.0
2019-12-02T10:27:27.593
61021
2019-12-03T04:29:54.113
2019-12-03T04:29:54.113
3060
36685
question
c++ opencv
OpenCV を用いた重心の求め方を知りたい


数学的には 三角形の 重心の足し算の応用です。

求める 多角形の集合体を 基準点＋多角形の1辺 をつなぐ小さな三角形の集合体とみなして  
右回りに外周の点を辿る場合、右回りに移動したら 足し算、左回りに移動したら引き算という  
ふうにしてその重心の位置を計算します。

具体的には・・ あまり自信がないので ネットを探してみました。  
数学的にちゃんと解説しているようなので  
www5d.biglobe.ne.jp/~noocyte/Programming/Geometry/PolygonMoment-jp.html  
を参考に実装してみてください。


CC BY-SA 4.0
2019-12-02T15:13:27.677
61030
2019-12-02T15:13:27.677
18851
61021
answer


OpenCVでは多角形のモーメントを求める[`cv::moments`](https://docs.opencv.org/4.1.2/d3/dc0/group__imgproc__shape.html#ga556a180f43cab22649c23ada36a8a139)関数が提供されており、このモーメント(moments)から重心(mass
center)も算出できます。

下記記事もご参考に：

  * [OpenCV-Pythonチュートリアル OpenCVにおける輪郭(領域)](http://lang.sist.chukyo-u.ac.jp/classes/OpenCV/py_tutorials/py_imgproc/py_contours/py_contour_features/py_contour_features.html)
  * [厳密な重心の求め方 | OpenCV画像解析入門](https://cvtech.cc/centroid/)


CC BY-SA 4.0
2019-12-03T01:04:53.123
61042
2019-12-03T01:04:53.123
49
61021
answer