delaunay三角网格优化中的相关问题

本文介绍了在图像拼接过程中遇到的Delaunay三角网格优化问题,以及如何通过Voronoi重心优化解决网格生成的美观性。论文《As-Rigaid-as-possible shape maintain》提出了一种方法,但顶点生成的过程令人困惑。通过阅读博客,了解到Voronoi重心优化可以迭代改善网格质量,从而得到理想的三角网格。虽然初始理解为随机点生成,但发现论文中的网格是固定的,引发对于点选择方法的疑问。

看了一篇不错的博客,是关于三角网格优化内容的,解决了我的一些困惑。

贴出地址:http://blog.sina.com.cn/s/blog_79b67dfe0102wzt0.html

文章是新浪微博的。

我在做图像拼接的过程中,研究了一篇论文As-Rigaid-as-possible shape maintain。其中有关于三角网格生成的描述,使用标准的delaunay三角约束。要生成网格,必须先有网格的顶点数据,顶点是如何生成的,paper中还有对顶点的约束和不通顶点的运行时间对比。顶点的生成一度困扰我,看了上述的博文之后,我才有点明白。既然paper中给出了顶点的运行时间对比,那网格生成的约束条件肯定就是顶点无疑了,而且特征点数量庞大,作为顶点的话cpu会爆炸。我想是使用随机生成的点,但是随机生成点形成的网格难看的不能用,这就牵涉到博客中提到的Voronoi重心优化,迭代进行重心优化,设定一定的迭代递归条件,就可以得到理想的网格了。忍不住盗几张效果图给大家看看。


这是经过voronoi重心优化的voronoi图,效果很NB了。


delaunay三角剖分形成的网格经过voronoi重心优化remesh形成的三角网格。



上述是转载的博客中的图像以及个人的一些理解,希望能帮到大家。


不对 想错了,paper中提供的rigid demo,跑出来网格是固定的,不可能

利用delaunay函数划分网格欢迎指点探讨-DelaunayWithGrid.m 本帖最后由 liuf412044725 于 2013-6-8 17:47 编辑 近期论坛上有不少讨论delaunay函数的帖子。似乎主要有以下问题: 1、delaunay函数各参数的意义 2、知道几何边界时,用delaunay函数划分三角网格由于区域内部没有点,质量很差,怎么改进 3、怎样避免产生过于狭长的delaunay 三角形 4、 凹多边形的情况怎么处理 第1个问题,看看帮助应该能解决。第2个问题delaunay本来是用来对离散点进行三角剖分,内部没有点时并不合适。除非特别处理。第3个问题,估计是利用delaunaymeshgrid来划网格,边界附近会产生狭长的delaunay 三角形,这个也可以做特别处理。第4个问题,可以用在划分好网格后删掉域外的三角形即可。 由于我也经常使用delaunay来处理背景积分问题,因此仔细琢磨了一下用delaunay来划分已知边界的几何区域的可行方案,在此和大家分享一下,也是抛砖引玉,希望大家有更好的方法。 方案一:先对区域delaunay剖分,删掉域外的三角形,然后将剩下的三角形的边细分,得到新的离散点,然后再次delaunay剖分,然后再次细分边,这样循环下去,直到达到一定的尺寸为止 方案二:利用delaunaymeshgrid函数。将边界细分得到相比原区域边界更加密集边界点,用meshgrid得到包含整个区域的点,将域内的点和边界点一起delaunay 剖分。 讨论: 方案一对于一开始就有很小边界段的情况情况较差,容易出现狭长单元(比如边界有圆弧的话属于这种情况)。还有就是前一步的边界轮廓很清楚,看着别扭。方案二中间的网格能搞保证形状较好。对于边界附近的内部点,容易导致边界单元畸变,可以将离边界太近的点进行删除,这样得到的形状比较好 综合来说,方案二较好,尤其是当删掉离边界太近的内部点。贴出程序,望大家多多指点,共同进步。 P.S. 当然,matlab自身也有很好的网格划分函数,在pdetool中有用到,不过关于几何描述那块比较难以理解(我不是很理解)。另外matlab语言写的划分网格的程序很多,网上可以找到不少很优秀的。这里仅限于简单的使用delaunay来划分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值