opencv - 没有内在相机矩阵的反投影
问题描述
我正在尝试验证将像素点(u,v)反投影到 3D 世界位置(x,y,z)的解决方案,除了(u,v)之外,仅使用相机的外部旋转和平移。
我在虚幻中模拟了这个问题,我有一个世界位置(1077,1133,450)和旋转yaw = 90,pitch = 345,roll = 0度的虚拟相机。我有一个已知 3D 位置 (923,2500,0) 的对象,由 1280x720 相机在像素位置 (771,426) 或帧中心位置 (131,-66) 看到。
我的旋转矩阵的转置是:
[[ 5.91458986e-17 9.65925826e-01 -0.00000000e+00]
[-1.00000000e+00 6.12323400e-17 0.00000000e+00]
[-1.58480958e-17 -2.58819045e-01 9.65925826e-01]]
我的 Tx_Ty_Tz 矩阵是:
[[-1094.39396119]
[ 1077. ]
[ -141.42464373]]
我的 dx_dy_dz 矩阵是
[[ -63.75110454]
[-131. ]
[ 18.0479828 ]]
我最终将位置 (-1593,50,0) 作为反投影的世界坐标,这显然是错误的。我的矩阵之一是否计算不正确?如果没有,提供的方法是否有缺陷/不完整?
解决方案
链接中提出的解决方案似乎并不准确,因为反投影应该需要固有的相机矩阵。
推荐阅读
- laravel - 如何在 Laravel 中使用 hasMany 关系排除预定槽?
- laravel - 为什么 php artisan serve 有效且 http://localhost/etc = error 500
- javascript - 在 NODeJS 中的 TCP 套接字上将十六进制字节转换为十进制
- flutter - 缺少 KeyStore Flutter,找不到键盘映射“windows 正确重做”
- php - 在 PHP 问题中从谷歌驱动器读取电子表格
- javascript - npm 开始不工作 | 不加载反应应用程序
- typescript - 找不到模块“...”或其相应的类型声明。(NextJS + TypeScript)
- php - geoNames api 返回 SyntaxError:JSON.parse:JSON 数据的第 1 行第 1 列的意外字符
- swagger - Swagger,从和到日期字段的条件
- php - Laravel:奇怪的意外'endif'