OpenCV备忘录

mat的遍历方法
refer to: https://blog.csdn.net/koibiki/article/details/85954121

如何使用opencv给视频添加水印并保存
refer to: https://blog.csdn.net/weixin_44903147/article/details/102969715

bool solvePnP(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess=false, int flags=ITERATIVE )

objectPoints为特征点的世界坐标,特征点通常为4个,坐标值需为float型,不能为double型,可以输入mat类型,也可以直接输入vector
imagePoints为特征点在图像中的坐标,需要与前面的输入一一对应。同样可以输入mat类型,也可以直接输入vector
cameraMatrix为相机内参数矩阵,大小为3×3。事先通过OpenCV自带例程求出相机标定参数。
distCoeffs输入为相机的畸变参数,为1×5的矩阵。事先通过OpenCV自带例程求出相机标定参数。
rvec输出解得的旋转向量。
tvec输出平移向量。
useExtrinsicGuess为true后似乎会对输出进行优化。
flags:
CV_ITERATIVE,默认值,它通过迭代求出重投影误差最小的解作为问题的最优解。
CV_P3P则是使用非常经典的Gao的P3P问题求解算法。
CV_EPNP使用文章《EPnP: Efficient Perspective-n-Point Camera Pose Estimation》中的方法求解。

//最小二乘法,解A*X=B中的X
bool cv::solve(InputArray A, InputArray B, OutputArray X, int flags = DECOMP_LU)

refer to:
https://www.cnblogs.com/singlex/p/pose_estimation_1.html
https://www.csdn.net/tags/NtTakgysNTA0NDQtYmxvZwO0O0OO0O0O.html