二维坐标和三维坐标相互转换

这篇具有很好参考价值的文章主要介绍了二维坐标和三维坐标相互转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原理参考世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换

我的需求是将二维点转换成三维点,旋转三维点,再转换为二维点,此处的旋转跟相机成像的旋转矩阵又没有关系。
假定像素坐标为(u,v),处理的输入数据是像素坐标,图像坐标为(x,y),相机坐标为(Xc, Yc),世界坐标为(Xw, Yw)。
2d坐标转3d,计算机视觉,人工智能
此处忽略dxdy,世界坐标即是所求的三维坐标。
需要说明一下,我做的只是矩阵相乘,比较笨的方法,计算速度也很慢。
在我的代码中,去掉旋转步骤,输入的关键点和输出的关键点一致。文章来源地址https://www.toymoban.com/news/detail-618204.html

def _2D_to_3D_to_2D(camMatrix, zrIfI, rIt, fr, ft, keypoints):
	# camMatrix 是相机内参,此处可忽略
	# zrIfI是zC*r.I*f.I,zC是相机坐标的z轴值,r是旋转矩阵,r.I求旋转矩阵的逆
	# f是焦距矩阵,f.I求焦距矩阵的逆
	# rIt是r.I*t,r.I同上,t为平移向量
	# fr是f * r
	# ft是f * t
	# keypoint是要变换的二维关键点[u,v]、
	# 根据输入的二维关键点手动设置的z值,因为二维转换成三维的z轴是模拟的,
	# 而后续还需转换回二维(无z值),故此处设置成合适值
	zC = 4.5 
	# 旋转值
	sin_ = math.sin(45)
	cos_ = math.cos(45)
	# 输入的关键点是ntu120数据集,该数据集的keypoints有四维
	# 相当于[[[[u,v]]]],只需改变最后一维,将二维变成三维,
	# 如代码重keypoints.shape[3]+1所示
	pk  = np.zeors(keypoints.shape[0], keypoints.shape[1], keypoints.shape[2

到了这里,关于二维坐标和三维坐标相互转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机图形学的革命:从2D到3D

    计算机图形学是一门研究如何在计算机屏幕上生成图像的学科。从其出现以来,计算机图形学经历了两次革命性的变革:从2D到3D,以及从矢量图形到位置 Independent Bitmap Images(Pixels)。这篇文章将深入探讨从2D到3D的革命,揭示其背后的核心概念、算法原理、数学模型以及代码实

    2024年02月19日
    浏览(39)
  • 【计算机图形学算法工具技巧】用Blender查看三维点云ply文件的点的序号和坐标

    因为用最近在学拉普拉斯曲面编辑的算法,需要查看三维点云ply文件的点的序号和坐标,然后固定或移动这些点的坐标。 这里介绍使用Blender 3.2软件查看三维点云ply文件的点的序号和坐标。 导入ply文件 隐藏不必要的物体(如cube),并将物体模式变成编辑模型!! 选择 gemo

    2024年02月13日
    浏览(71)
  • 从2D到3D,计算机视觉的ChatGPT何时到来?

    ChatGPT 及其改进型 GPT4通过一个单一模型解决了几乎所有与文本相关的任务,彻底改变了 NLP 领域。然而,这样的一个模型在计算机视觉方面并不存在,特别是对于3D视觉。本文首先从模型的角度简要介绍了深度学习在文本、图像和3D领域的进展。此外,本文还从数据的角度进一

    2024年02月03日
    浏览(63)
  • 计算机视觉 图像形成 几何图形和变换 3D到2D投影

            现在我们知道如何表示2D和3D几何图元以及如何在空间上转换它们,我们需要指定如何将 3D图元投影到图像平面上。 我们可以使用线性3D到2D投影矩阵来做到这一点。最简单的模型是正交法,它不需要除法就可以得到最终的(不均匀的)结果。更常用的模型是透视,

    2023年04月08日
    浏览(59)
  • 深度学习应用篇-计算机视觉-语义分割综述[5]:FCN、SegNet、Deeplab等分割算法、常用二维三维半立体数据集汇总、前景展望等

    【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、

    2024年02月16日
    浏览(53)
  • 【Unity】Transform—“本地坐标”与“世界坐标”相互转换

    现有: Lesson10脚本的代码: 运行: 可以帮助我们判断一个物体大概在我的什么方位 现有: Lesson10脚本的代码: 运行:

    2024年02月11日
    浏览(32)
  • 惯性导航原理(1):导航坐标系及相互转换

    写在前面(本人是导航专业,目前已经毕业入职,工作也是与惯导、组合导航相关,因为以前的知识忘的差不多了,所以开个帖子,会分几章记录一下,如有不正确的地方还请大家多多指教) 补充 由于不同参考资料中,经纬度表示不同,有的是L表示纬度, λ lambda λ 表示经

    2024年02月01日
    浏览(41)
  • unity的2d屏幕坐标转3d世界坐标

    1.使用ScreenToWorldPoint将获取的屏幕位置直接转成世界坐标:      坑1:获取的屏幕坐标Input.mousePosition是一个2d坐标,z轴值为0,这个z值是相对于当前camera的,为零表示z轴与相机重合了,因此给ScreenToWorlfdPoint传值时,不能直接传Input.mousePosition,否则获取的世界坐标永远只有一个

    2024年02月17日
    浏览(43)
  • 三维坐标系转换

    一、首先需要判断坐标系是左手坐标系还是右手坐标系 首先将拇指作为X轴,食指作为Y轴,中指作为Z轴。观察(待判断的)坐标系对应哪只手对应的坐标系。然后根据对应的坐标系使用适配定则判断。右(左)手定则:用右(左)手的大拇指指向旋转轴的正方向,弯曲手指,

    2024年02月15日
    浏览(31)
  • Unity坐标系、相互转换和相对自身的方位及角度。

    一、Unity的4种坐标系 1, World Space(世界坐标): 我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的。transform.position可以获得该位置坐标。 2, Screen Space(屏幕坐标): 以像素来定义的,以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height),Z的位置是以相机

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包