Intersection between 2d image point and 3d mesh(二维图像点与三维网格的交点)
本文介绍了二维图像点与三维网格的交点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
给定:网格,源Camera-I具有内部和外部参数,图像坐标2D
输出:3D点,即光线从摄像头中心到图像平面上的2D点和网格的交点。(我正在尝试查找网格上的3D点)
这是流程:
摘自《计算机视觉中的多视图几何》一书:我已构造等式(6.14)
。
我不确定如何继续获取位于网格上的3D点(我还需要靠近相机的点)。
我认为可以这样做:
遍历所有顶点,找出顶点到直线的距离,距离最小的顶点位于直线上(如果它们接近零或零),我猜找到最接近的顶点就是找到相机中心和最接近的顶点之间的大小,最小的一个意味着该点是最近的?
快速更新:此回购似乎确实适用于射线:github.com/szabolcsdombi/python-mesh-raycast
我想现在的错误在于正确理解了D
..
推荐答案
如Grillteller在评论中指出的,这是3D网格的光线相交问题。据我所知,人类还不知道如何快速确定任意网格的交点。在您的问题上下文中,您应该Ray Tracing,Grilleller也指出了这一点,但是这有严重的性能问题,尽管它提供了许多阴影可能性。 为了找到光线和网格的交点,光线跟踪算法通常使用不同的加速结构。通常,这样的结构是由树划分的空间:
- KD树光线跟踪https://graphics.stanford.edu/papers/gpu_kdtree/kdtree.pdf
- 用于光线跟踪的BSP-treehttps://www.sci.utah.edu/publications/ize08/BSP_RT08.pdf
- 八叉树光线跟踪https://www.researchgate.net/publication/3410767_Octree-R_An_Adaptive_Octree_for_Efficient_Ray_Tracing
这篇presentation很好地解释了其中的一些方法。
附注:如果您只需要简单的可视化,那么最好是反转问题:对于每个网格元素,执行rasterisation。
这篇关于二维图像点与三维网格的交点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:二维图像点与三维网格的交点
猜你喜欢
- 合并具有多个索引和列值的数据帧 2022-09-22
- 为什么切换屏幕在Kivy中不起作用? 2022-09-21
- 使用带有CROSS_VAL_SCORE的自定义估计器失败 2022-09-21
- 如何命名HDF5数据集中的列? 2022-09-21
- 基于多个一级列的子集多索引DataFrame 2022-09-22
- 获取多索引中某个级别的最后一个元素 2022-09-22
- H5py:如何在HDF5组和数据集上使用key()循环 2022-09-21
- 将文件从Azure文件加载到Azure数据库 2022-09-21
- 如何将属性添加到作为组存储在HDF5文件中的 pa 2022-09-21
- 如何防止Groupby超越指数? 2022-09-22