基于相机矩阵与已知距离求解3D坐标的技术问询(FSG2022)
FSG 2022注册测验3D坐标计算问题求解
我在解决FSG 2022注册测验中的3D坐标计算题目时遇到了困难。起初尝试利用MathWorks及相关文章提及的相机内外参公式求解,随后意识到已知的是相机坐标系下的目标距离,可将其视为深度相机,采用深度图转点云的方法计算,但始终无法得到正确结果。
我参考相关文章的公式编写了如下Matlab脚本尝试求解:
rot = eul2rotm(deg2rad([102 0 90])); trans = [500 160 1140]' / 1000; % mm to m t = [rot trans]; u = 795; % here was typo as pointed out by solstad. v = 467; cx = 636; cy = 548; fx = 241; fy = 238; z = 2100 / 1000 % mm to m tmp_x = (u - cx) * z / fx; tmp_y = (v - cy) * z / fy; % attempt 1 tmp_cords = [tmp_x; tmp_y; z; 1] linsolve(t', tmp_cords)' % result is: 1.8913 1.8319 -0.4292 % attempt 2 tmp_cords = [tmp_x; tmp_y; z] rot * tmp_cords + trans % result is: 2.2661 1.9518 0.4253
我希望得到手动计算过程,而非Python代码。题目提供的正确答案为2.030, 1.272, 0.228 m。
内容的提问来源于stack exchange,提问作者Pisikoll
相关产品推荐
相关产品推荐

