最开始是从这篇论文Simulation of Time-of-Flight Sensors for Evaluation of Chip Layout Variants 入手的, WurblPT有一个example用来仿真这个论文里的例子.
仓库依赖tgd, 可以先把这个仓库tgd clone一下,
先编译这个
1 | cd tgd |
值得注意的有两个地方:
- 一定要编译Release模式, Release模式跑起来真的快很多.
- 这种用源码编译的库我一般都放在自己的
.local目录, 那样不容易污染系统环境. - 用
checkinstall安装可以方便后续卸载, 但就是需要用到管理员权限, 卸载的时候也是通过dpkg卸载. 在安装的时候要记得看清楚安装的库的名字.
安装完tgd之后就可以安装libwurblpt了, 安装的命令也是一样的.
1 | cd wurblpt/libwurblpt |
最后再编译wurblpt-tof-example, 然后就可以跑ToF的仿真了.
1 | cd wurblpt/wurblpt-tof-example |
仿真生成的都是.tgd后缀的数据, 可以用qv查看, 这个我也是从仓库的issue看到的,
wurblpt#1
我是通过flatpak安装的qv, 可以把要看的一个系列图片放在一个文件夹里,
然后用qv查看整个文件夹, 然后可以用方向键的左右来看每帧的结果.
1 | flatpak run de.marlam.qv result |
如何将距离像转换为三维点云视图? 这里
只说了可以用距离像生成, 但是没有说具体怎么做. 而且tgd格式在python里的支持不是很好,
没法直接读取. tgd格式可以转tiff格式:
比如像这样可以把resutl.tgd中通道0的数据转换称tiff格式.
1 | tgd convert -c 0 result.tgd result.tiff |
然后tiff格式的数据在python中就可以比较方便处理了. 利用open3d可以生成3D点云.
1 | import tifffile as tiff |