点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 5422|回复: 9

请教一个问题,关于mesh的。

[复制链接]
发表于 2015-7-14 18:35:43 | 显示全部楼层 |阅读模式
现在有一个三角网 mesh。然后还有一个点云cloud。每次从cloud中选取一个点point.
想从这个mesh中找出离这个点point最近的三角形。

没想到应该怎么做,是不是要利用索引还是什么。
有没有人指导一下,或者有相关资料可以学习?
谢谢了。
回复

使用道具 举报

发表于 2015-7-15 09:43:45 | 显示全部楼层
我的初步思路是:
                 1,首先将网格中的点提出来,形成一个点云cloud_mesh.
                  2,然后遍历原来的cloud中的每个点,每个点作为查询点寻找cloud_mesh中的最近邻点,参考kdtree.
                3,得到最近邻点的x,y,z坐标后,在原来网格查找该点的序号i,并根据i 在三角形列表中找到所有含有该序号的三角形。
                4,如果只有一个三角形,则它就是最近的三角形。
                5,如果有多于一个三角形的,找到各三角形的顶点,根据你最近的定义判断哪个是最近的三角形。
                6,如果没有三角形,则重新查找第二个最近邻的点,重复3,4,5步骤
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-15 12:08:01 | 显示全部楼层
xiaoji2014 发表于 2015-7-15 09:43
我的初步思路是:
                 1,首先将网格中的点提出来,形成一个点云cloud_mesh.
                ...

恩,大致看懂了。我先试着做,有问题再请教你,谢谢了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-16 13:26:44 | 显示全部楼层
xiaoji2014 发表于 2015-7-15 09:43
我的初步思路是:
                 1,首先将网格中的点提出来,形成一个点云cloud_mesh.
                ...

算法可行,但是找到最近点之后,因为网格很大,在网格中搜索序号和判断距离的过程中非常耗时....所以在想还有没有什么办法提高效率。不过还是谢谢了
回复 支持 反对

使用道具 举报

发表于 2015-7-16 15:21:25 | 显示全部楼层
本帖最后由 xiaoji2014 于 2015-7-17 09:16 编辑

遍历三角网格的时候可以考虑用multimap数据结构,我没用过,但搜了一下好像是可以实现多键查找的,设3个multimap表,每个表的键分别设置成int point1,int point2,int point3,值设为它在三角形表的序号(第几个三角形)。
我刚看了一个用multimap弄得通过学生号(可重复)查找学生资料的小程序,可以参考下。
multimap
顺便问下,你总体是要实现一个什么功能?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册加入PCL中国点云技术相关产学研社区

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-16 15:31:41 | 显示全部楼层
xiaoji2014 发表于 2015-7-16 15:21
遍历三角网格的时候可以考虑用multimap数据结构,我没用过,但搜了一下好像是可以实现多键查找的,设3个mul ...

功能是,找到最近三角形,然后求点到三角网格的距离D ,如果小于预设阈值的话,则加入网格,删除原点云中的这个点,重新生成网格。在继续遍历,直到点云中没有点需要加入网格为止。
回复 支持 反对

使用道具 举报

发表于 2015-7-16 15:44:43 | 显示全部楼层
6118858 发表于 2015-7-16 15:31
功能是,找到最近三角形,然后求点到三角网格的距离D ,如果小于预设阈值的话,则加入网格,删除原点云中 ...

这个好难:'(    加入网格......,我觉得要上openmesh或cgal了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-16 15:51:47 | 显示全部楼层
xiaoji2014 发表于 2015-7-16 15:44
这个好难    加入网格......,我觉得要上openmesh或cgal了。

是啊,因为网格是动态变化的,要遍历很多次,数据量大的话。效率太低了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-16 16:00:26 | 显示全部楼层
xiaoji2014 发表于 2015-7-16 15:44
这个好难    加入网格......,我觉得要上openmesh或cgal了。

现在耗时比较多的,还是在找三角形的问题上。所以才来问问有没有效率点的思路。
回复 支持 反对

使用道具 举报

发表于 2016-10-28 01:04:05 | 显示全部楼层
xiaoji2014 发表于 2015-7-15 09:43
我的初步思路是:
                 1,首先将网格中的点提出来,形成一个点云cloud_mesh.
                ...

你好,请问下,如果想增加Mesh中数量,应该用什么方法
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-4-28 07:14 , Processed in 2.223014 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表