参考文献(今度はMastering OpenCV with Practical Computer Vision Projects https://www.amazon.co.jp/Mastering-OpenCV-Practical-Computer-Projects/dp/1849517827)のマーカー見つけるやつのプログラムに基づく。でもね、このプログラムのcodeとかGitHubとかに登録してあったけど、コピペして使えるってものじゃなかったよ。まあ、簡単にはいかないよね。とりあえず、includeするプログラムとか、印刷してみた…。参考文献の章に書いてある原理から自分のプログラム作ることにしたよ、トホホ…。その一部で、該当する関数などについて書きます。
cv::solvePnP(objectpoint, imagepoint, cameramatrix, distcoeffs, rvec, tvec, useextrinsicguess)
objectpointというのは世界座標系の物体の位置(3次元)。ポイントは、このobjectpointといのはcv::Mat型の配列であって、物体上の点の複数の点を指す。imagepointは、objectpointの画像上の位置(2次元)。これ…、いるのかな?objectpointがさっき言ったみたいな内容だったら、もともとの物体上のこれらの点の関係が既知なら、もう物体の世界座標系に置ける向きは、出せると思うんだけど…。objectpointは違うものをさすのかなあ?まあ、後になってわかったらでいいや。とにかく、そういうこと。次は、cameramatrixとdistcoeffsは、calibrationとかで求めた内部パラメータ。rvecとtvecが、出力される回転と並進の行列…。本当に、この関数は、物体の世界座標系での位置を求めるのかしら?だって、物体上の点の実際の関係を表す情報が、入力として入ってないんだもの。勘違いかな?
うーん、ダメだ。参考文献にはこれ以上私に有益な情報がないっ。どうしたもんか…。