我想校准我的相机并绘制xyz轴。 (如此链接所示:http://docs.opencv.org/3.1.0/d7/d53/tutorial_py_pose.html)
不幸的是,我的校准做了一些奇怪的事情,我似乎无法修复它。我制作了一个cad模型,以尽量减少其他可能的错误...
基本上,我做了两个步骤:
我不知道哪里出错......
来自cameraCalibration的变量。来自图像点的点由棋盘找到。
vector< vector<cv::Point2f> > imagePoints;
vector< vector< cv::Point3f> > objectPoints;
vector<cv::Mat> rvecs, tvecs;
cv::Mat intrinsic_Matrix, distortion_coeffs;
找到点的代码
cv::Point2f clsCameraControl::FindSpecific(cv::Point3f o3Dpoint)
{
cv::Mat rvec, tvec;
rvec.create(1, 3, cv::DataType<double>::type);
tvec.create(1, 3, cv::DataType<double>::type);
rvec = rvecs[0].clone();
tvec = tvecs[0].clone();
cv::solvePnP(objectPoints[0], imagePoints[0], intrinsic_Matrix, distortion_coeffs, rvec, tvec);
vector<cv::Point3f> Input1;
vector <cv::Point2f> Output1;
Input1.insert(Input1.end(), o3Dpoint);
Output1.clear();
cv::projectPoints(Input1, rvec, tvec, intrinsic_Matrix, distortion_coeffs, Output1);
return Output1[0];
}
This image represents the four results i got(绘制X(绿色),Y(红色)和Z(蓝色)轴)
Z轴总是错误的。它应该是(或者至少在同一个方向上都是错误的)
我使用的基本图片是in this album,如果您想亲自尝试一下(我自己制作的图片可供所有人免费使用!)
有人知道为什么以及如何解决这个问题?
答案 0 :(得分:0)
对于有此问题的人:拍更多照片......