关于solvepnp和projectPoints函数的困惑

VERITAS_LEE 2018-04-12 02:49:18
在solvePNP中通过世界坐标系下3D点坐标,图像坐标系下2D像素坐标,相机内参和畸变矩阵就可以求出rvec和tvec;
在projectPoints中通过3D坐标,rvec,tvec,相机参数就可以求出投影出的2D坐标。那么请问这个rvec和tvec是不是图像2D坐标和物体3D坐标之间的一个关系呢?如果是的话请问相机位置又是怎么和rvec(R)以及tvec挂上钩的呢?据StackOverflow上所述,相机位置=-translation(R)*tvec
...全文
2419 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
虾眠不觉晓, 2021-01-06
  • 打赏
  • 举报
回复
这个你可以了解一下Rodrigues matrix, 可以实现旋转向量与旋转矩阵的变化.
一只酱吖 2020-04-15
  • 打赏
  • 举报
回复 2
引用 1 楼 Sanduo_007 的回复:
opencv的官方文档中说明了这些问题,也就是相机坐标系和世界坐标系相互转换(平移和旋转)的问题。
solvePnP求解的r和t是将世界坐标系下的点变换到相机坐标系所需要的旋转和平移,实际上也是相机在世界坐标系下的位姿,即
R*Pw + T = Pc

根据这个位姿,我们也可以由世界坐标系下的3D点计算对应的相机坐标系的点,再根据内参得到像素平面上的2D坐标,即projectPoints函数。
所以,r和t不是图像2D坐标和物体3D坐标之间的一个关系,而是相机坐标系(3D)和世界坐标系(3D)之间的关系。


你好,请问这个旋转矩阵为什么是3*1 而不是3*3的呀。相机坐标系与世界坐标系的旋转矩阵不是3*3嘛
luckyCatBOBO 2019-10-18
  • 打赏
  • 举报
回复
三多学长 2018-08-18
  • 打赏
  • 举报
回复 2
opencv的官方文档中说明了这些问题,也就是相机坐标系和世界坐标系相互转换(平移和旋转)的问题。
solvePnP求解的r和t是将世界坐标系下的点变换到相机坐标系所需要的旋转和平移,实际上也是相机在世界坐标系下的位姿,即
R*Pw + T = Pc

根据这个位姿,我们也可以由世界坐标系下的3D点计算对应的相机坐标系的点,再根据内参得到像素平面上的2D坐标,即projectPoints函数。
所以,r和t不是图像2D坐标和物体3D坐标之间的一个关系,而是相机坐标系(3D)和世界坐标系(3D)之间的关系。

4,242

社区成员

发帖
与我相关
我的任务
社区描述
OpenCV相关技术交流专区
计算机视觉人工智能opencv 技术论坛(原bbs) 广东省·深圳市
社区管理员
  • OpenCV
  • 幻灰龙
  • OpenCV中国团队
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

OpenCV中国团队官方博客:https://blog.csdn.net/opencvchina

试试用AI创作助手写篇文章吧