软件工程应用与实践(5)可视化-非阻塞可视化

本文介绍了open3d库在软件工程中的应用,特别是如何使用其非阻塞循环渲染功能进行动态几何体可视化。通过draw_geometries()函数实现静态几何体的快速显示,并详细阐述了在不关闭窗口的情况下,利用update_geometry()和update_renderer()进行点云配准过程的实时更新。示例代码展示了ICP配准过程中如何利用这些函数进行动态可视化,最终通过调用destroy_window()关闭显示窗口,若在它之前添加vis.run(),则窗口不会自动关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 2021SC@SDUSC 

open3d  

当需要快速可视化静态几何体时,draw_geometries()是一个十分有用的函数。但是这个函数会锁定一个进程直到可视化的窗口关闭。当需要在不关闭窗口的情况下更新几何体并可视化时,open3d中有一个更好的自定义循环渲染的方式。 

 draw_geometries()的循环渲染方式

while(true):
    if (geometry has changed):
        re-bind geometry to shaders
    if (view parameters have changed):
        re-render the scene
    if (any user mouse/keyboard input):
        respond to it and set flags for re-rendering

绑定几何体和渲染都是很费资源的操作,因此open3d以一种惰性操作的方式进行。当需要进行几何体的绑定和渲染时就使用update_geometry()和update_renderer()函数将绑定和渲染功能设为打开,在重新绑定或者渲染之后就清空这两个标志。

用自定义循环来可视化ICP配准的过程的例子

vis = Visualizer()
vis.create_window()
for i in range(icp_iteration):
    # do ICP single iteration
    # transform geometry using ICP
    vis.update_geometry(geometry)
    vis.poll_events()
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值