OpenCV将三维坐标投影到二维摄影机坐标
OpenCV project 3D coordinates to 2d camera coordinates
我有一个物体的三维世界坐标,我想在2D平面上获得它的坐标。我已经使用cv::calibrateCamera
校准了相机,这样我就有了相机矩阵和畸变系数。
为了将三维点投影到二维相机坐标,我使用cv::projectPoints
。文件显示:
void projectPoints(InputArrayobjectPoints、InputArrayrvec,InputArraytvec、InputArraycameraMatrix和InputArraydistCoeffs,OutputArrayimagePoints,OutputArray>jacobian=noArray()、doubleaspectRatio=0)
我如何获得rvec/tvec?我的方法正确吗calibrateCamera
给了我rvecs
和tvecs
,但它们是针对每个输入棋盘图像的,我想,它们是棋盘的旋转和平移,而不是相机的旋转和移动。
由于我有投影矩阵(P
),我可以从3D坐标X
(使用齐次坐标)计算相机平面中的2D坐标(x
):
x(u,v,w)=p*x(x1,x2,x3,w)
我只是在纠正时遇到了问题,所以我无法获得2d图像的精确投影。请参阅此处:OpenCV立体视觉3D坐标到2D相机平面投影不同于将2D点三角化到3D
相关文章:
- 将二维矢量传递给类
- 将值从二维数组输出到文本文件
- 我在二维向量中是否正确分配了内存
- 带结构的二维矢量:如何存储元素
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- 如何在Openscenegraph中从二维鼠标点击的屏幕坐标点计算三维点(世界坐标)
- C++将三维坐标高级为二维坐标
- OpenCV将三维坐标投影到二维摄影机坐标
- 使用二维屏幕坐标gluUnproject获取三维模型坐标
- 如何定义用于表示二维坐标的模板之间的转换
- 在C++中的OpenGL中将坐标从三维透视投影映射到二维正投影
- 使用二维阵列在地图/栅格上显示坐标
- 是集合中的二维整数坐标