PCDViewer的常用操作-程序员宅基地

技术标签: slam  自动驾驶  可视化  计算机视觉  

PCDViewer是一款功能强大但操作极为简单的点云可视化和编辑软件,支持对点云的渲染显示、查询、量测、建图拼接、编辑、格式转换等功能,同时支持了pose文件、矢量文件等的显示。PCDViewer目前提供了Windows、Ubuntu18.04、Ubuntu20.04等版本。

本页面总结了PCDViewer的基本、常用操作。为正常使用文档中介绍的功能,建议用户下载最新版软件。

PCDViewer Release Page_Jacky_546287052的博客-程序员宅基地

PCDViewer Auto Rotation


目录

1. 启动软件    

2. 打开点云

3. 点云的渲染

4. 可视化操作控制

5. 查询和量测

6. 点云滤波和编辑

7.  显示pose文件

8. 显示连续帧点云的拼接效果

9. 配置类别颜色表(Class Color Table)

10. 快捷键

11. 关于Layer Tree的操作    

12. 显示矢量

13. 数据清除

14. 用pcdviewer_skip.sh脚本批量打开点云文件


1. 启动软件    

        在安装目录下,双击PCDViewer,或者通过命令行打开PCDViewer,即可启动软件。
在Windows系统中,设置PCDViewer为点云数据(pcd, las,ply等)默认打开软件后,双击点云数据即可直接打开点云数据。

2. 打开点云

        软件支持打开pcd、ply、las等格式的点云文件。
        目前已支持以下几种文件打开方式:
        1)在软件中用Open按钮打开文件
        包括菜单栏 Data -> Open Point Cloud 和 Layer Tree -> 鼠标右键菜单 -> Open Point Cloud
        2)通过命令行打开文件;
        3)通过拖放方式打开文件;
        4)通过Data -> Recent Files,打开最近打开的文件。

        软件支持一次打开多个点云文件。
        点云打开后,默认按高程方式进行渲染。 
    
        强烈建议将软件路径添加到系统环境变量。这样,可以直接通过命令调起本应用程序。
        同时,强烈建议将本软件设置为点云文件的默认程序,这样,可以通过双击点云文件用本软件直接打开。

        通过命令行加载点云文件的方式为:
        PCDViewer pcd_file_1 pcd_file_2 [...]

        打开的文件会记录到Data-Recent Files菜单中,下次软件启动时,可以直接通过Recent Files中的相应记录打开文件。

        点云打开后,会加入到Layer Tree进行管理,方便进行各种查找、渲染、编辑等操作。

        软件同时提供了las、pcd、ply格式相互转换的功能,方法是打开点云后另存为指定格式。

3. 点云的渲染

        软件对pcd、ply、las进行了系统而完善的支持,支持打开任何符合pcl标准的pcd和ply格式的数据,并可方便地渲染任意字段。

        PCDViewer提供了丰富的点云渲染方式,包括:
        - Render As Elevation: 按高程着色
        - Render As Mono Color: 按单一颜色着色
        - Render As RGB: 按点云自带的rgb颜色着色(如果点云有RGB信息的话)    
        - Render As Field: 按字段着色。

        当点云文件中包含rgb字段时,点云可以按RGB渲染。对pcd、ply文件,当文件中包含rgb或rgba字段、且rgb/rgba数据按3x8/4x8 bit组织在一个32位数据中时,则可以按RGB渲染。
   
        PCDViewer支持按任意字段渲染点云。同时,对每一个字段,提供了Render By Label Color、Render By Random Color、Render By Continuous Color三种方式。
        -Render By Label Color:基于字段值,从颜色查找表取对应颜色,即
           color=LookupTabel(value);
        -Render By Random Color:基于字段值,按一种随机颜色算法计算颜色,即
           color=RandomColor(value);
        -Render By Continuous Color:基于字段值和连续颜色表计算相应颜色,即
          color=ContinuousColor(v_min, v_max, value)。
        颜色查找表可以通过Lable Color 表格进行编辑。
        Render By Continuous Color中,可以通过直方图工具调整v_min、v_max,从而调整可视化效果。如下图,拖动蓝色滑块和红色滑块分别改变线性拉伸的最小值和最大值,从而突出需要显示的信息;通过调整Beyond Strategy确定对(最小值,最大值)之外的信息展示策略,例如,显示背景是黑色,则可以设置Beyond Strategy为black,从而不显示(最小值,最大值)之外的数据。

        提供了超级渲染字段进行点云的全局渲染,包括Elevation、Classification、Intensity、RGB,可以实现对点云的全局渲染,这在有些情形下可以极大地提高点云的渲染操作效率。点击工具栏的相应按钮即可。

4. 可视化操作控制

        软件默认鼠标中键控制旋转,鼠标右键控制平移,鼠标中键控制缩放,软件支持鼠标控制方式的定制。在安装目录下,打开config.json文件,用户可以重新定义缩放、平移、旋转的相应鼠标键,下面的配置中,定义左键控制平移,右键控制旋转,中键控制缩放。

        软件提供了视点控制功能:
        1)通过放大镜功能(Focus),可以将视口中心迅速重定位于用户所点击的目标区域;
        2)当软件打开了大量点云文件时,用户点击文件弹出菜单中的“Make Visible”,可以将视口中心迅速重定位于文件对应的点云数据区域。

        软件提供了平移速度控制功能。当软件打开的数据区域范围较大时,可以向右拖动平移速度滑块加大平移速度。软件同时提供了其他快捷键控制平移/旋转/缩放速度等。

        提供了漫游操作快捷键(W),可以使得当前工具由其他工具迅速切换为漫游工具(Roam Tool)。

        提供了坐标轴网格等的显示。坐标轴按X-红,Y-绿,Z-蓝显示,坐标轴的长度默认为1米,grid 网格大小默认为10米,可以在config菜单中开启或关闭坐标轴、grid的显示,同时可以在config.json中配置软件的坐标轴的显示长度、grid的网格大小等信息。

        可以改变背景颜色。点Config->background,选择想要的背景颜色,则可以设置点云显示窗口的背景颜色。

        提供了自动旋转快捷键(Shift + R),方便用户进行效果展示、视频录制等操作。

5. 查询和量测

        软件提供了效率极高的拾取算法,对大文件和同时打开几千个单帧点云文件,软件也可以进行实时拾取和查询。

5.1 查询点信息
       在工具栏点击点查询工具,在视口点击查询点,Point Info 框中便会显示点的全部字段信息、以及点所在的数据集信息。所选点会默认按红色高亮显示。查询点的大小可以通过Config->Inquiry Point Size进行设置,查询点的颜色可以在config.json中的inquiry_config进行配置。

5.2 量测距离
      在工具栏点击量测工具,在视口中点击两点,Distance 框会显示距离信息:

5.3 量测角度和平面法向量
      从4.9.1开始,软件提供了量测旋转角和旋转轴的功能,旋转轴也即为平面法向量。

计算连续3点间构成的夹角(<P_1P_0,P_1P_2>)及旋转轴(如上图)。   

5.4 量测及查询信息的擦除
        点击C,或点击工具栏Clear工具,可以清除查询、量测痕迹:        在Layer Tree的相应Item上,点击弹出式菜单中的Show Properties,会弹出文件的属性信息,包括点云坐标范围、半径、点数、文件路径等:

6. 点云滤波和编辑

        软件提供了强大的点云滤波和编辑功能。

        点云地面滤波是点云处理中常用功能,软件提供了一个点云地面滤波器 Ground Filter,对城区和山区、车载和机载等点云都能取得不错的地面滤波效果,点云滤波中的参数可以在Ground Filter Parameters Config中设置;同时,软件提供了专门用于城区车载单帧点云的地面滤波算法Ground Filter (Single Frame),一般在20ms以内即可完成单帧点云的滤波处理,基于默认参数即可取得较为理想的滤波效果,本算法与Ground Filter功能具有相同的参数。软件优先支持带label或classification字段的滤波和编辑处理,同时支持对不带label或classfication字段的点云的地面滤波,可以用Save Label PCD 导出地面滤波及编辑结果。

        软件提供了“多边形选点(Polygon Label Tool)”和“扩散选点(Diffuse Label Tool)”标注工具,对带label或classification字段的点云数据,通过标注工具选中点,即可将点分至目标类别,目标类别通过组合框指定,目标类别组合框中的内容由点云类别编辑表(Class Color Table)指定,用户可以编辑点云类别编辑表,设定类别分类、类别ID、颜色等信息。

        “扩散选点”是本软件的创新功能,当用户在目标区域点击时,该功能通过区域生长算法,将拾取周围一定距离范围内的邻近点标注为目标类别。

        进行滤波或编辑操作后,Layer Tree中的相应点云文件,在文件名前面会加上星号(*)以示数据更改,保存或导出后星号会消失。

        标注完成后,可以在Layer Tree中右键点击对应Item进行保存。如果用户没有进行保存操作,在软件关闭时会自动提示保存。

关于地面滤波器的参数
-Max Slope <degree>:最大坡度,单位度,默认5
-Min Flat Patch Size <meter>:最小平面大小,单位度,默认1.5
-Recall Distance <meter>:召回距离阈值,单位米,默认0.1
此外,还有一个参数,Ground Label,指定地面的目标类别,默认 ground_label =1。

7.  显示pose文件

        pose文件记录了连续时刻位姿。可以通过pose文件可视化可以查看某位置/某时刻位姿、坐标轴朝向、轨迹连续性、平滑性等。
        pose文件格式为:
        frame_id   time_stamp     x      y     z      qx     qy     qz      qw
        字段类型除frame_id为整型外,其他均为浮点型。
        字段间以空格分开。
        pose文件没有文件头。

         pose文件示例:

0 1669000000.324430  -1.79949 0.002519 -0.921 -0.000001 -0.000007 0.017514 0.999847
1 1669000000.423560  -1.708357 0.006662 -0.921 -0.000042 -0.000377 0.039366 0.999225
2 1669000000.523310  -1.465213 0.02722 -0.921 -0.000018 -0.00013 0.061221 0.998124
3 1669000000.622430  -1.269766 0.053482 -0.921 -0.000014 -0.000105 0.082008 0.996632
4 1669000000.721570  -1.159607 0.072923 -0.921 -0.000104 -0.000466 0.09825 0.995162
5 1669000000.820710  -0.970453 0.112265 -0.920999 0.000085 -0.000732 0.120379 0.992728

        可以通过点查询工具(Pickup Point)查询某一点的具体pose信息,信息以Point Info呈现出来。同时,软件同时会绘制出该pose点的姿态信息(orientation),红(Red)、绿(Green)、蓝(Blue)三轴分别代表代表该pose点局部坐标系的X轴、Y轴、Z轴朝向。

8. 显示连续帧点云的拼接效果

        在测绘及SLAM中,显示连续帧点云拼接效果极为重要。软件为显示连续帧点云的拼接效果提供了方便而强大的支持。
        首先加载点云pose文件,此时frame_id对应pcd点云文件的basename。例如1.pcd,其basename是1,则其frame_id为1。
        然后,就可以打开需要的点云文件查看拼接效果。
        借助距离量测、单帧点云的不同渲染方式等,可以很方便地查看点云拼接精度,评估点云建图质量。

9. 配置类别颜色表(Class Color Table)

        颜色查找表包含类别名、类别ID、类别颜色等信息。
        可以通过双击颜色从而编辑相应类别的点云颜色。
        也可以通过Append、Remove等增加或减少类别,控制要进行着色的类别范围。
        对不在Color Table中的类别,将按白色进行着色。

        Color Table对应的软件配置文件名为lable_config.cfg,这实际上是一个utf-8编码的文本文件,用户可以直接编辑这个文件。

        用户可以任意设置Color Table所在的位置,可以放置在不同面板进行显示,也可以关闭它。关闭后,如果要重新打开,可以通过Config->Color Table让其重新显示。

10. 快捷键

   S/s          增加/减少点大小
   P/p          使平移速度变快/变慢
   Z/z           使缩放速度变快/变慢
   R/r           使旋转速度变快/变慢
   shift + r    开启/关闭自动旋转
   Alt + x      截图(version >= 4.8.0)

   W      Roam快捷键
   C       Clear快捷键。清除点查询、距离量测、Focus(放大镜)等的相关绘制
   
   H       只在水平方向进行旋转 -- 禁用上下旋转
   V       只在竖直方向进行旋转 -- 禁用水平旋转
   
        关于缩放的一个小技巧:支持无限放大。有时候看起来还有放大空间,但放大不动了,不是放大到头了,实际上还可以放大。多次按大写Z,放大缩放速度,然后就会发现又可以放大了。同时,按住鼠标中键拖放可以实现快速缩放。

        提供了放大镜功能。放大镜实际上重置了旋转中心,极大地方便了用户操作。

11. 关于Layer Tree的操作    

        1)双击鼠标修改Folder Item名字
        2)点击鼠标右键弹出菜单
        3)有时候Layer Tree操作空间被占满,无法出现”Add Folder”菜单选项,可以在点击鼠标右键的同时按住Alt键,就可以弹出”Add Folder”菜单选项了。
        4)直接按Delete键可以直接删除Item

12. 显示矢量

        本软件支持矢量文件显示。矢量文件格式为.ghs,为作者自定义的一种高效的矢量格式文件。关于文件格式定义,请参考PCDViewer Release Page 及随本软件发布时附带的test_data/example_file.ghs,这是一种文本格式文件,可以用文本编辑工具直接打开。同时,作者提供了.ghs文件的读写库,上传在github上(https://github.com/XuShengpan/GeneralGraphicsFormat),感兴趣的读者可以通过文件定义、代码等进一步了解。

        例如:下图显示了一个矢量文件,其中包括顶点、向量、多边形等要素。

用户可以对矢量的显示方式进行编辑:

13. 数据清除

        用户可以通过Data->Clear 清除所有数据,然后重新打开新的数据。
        软件具有可靠的稳定性,清除所有数据再打开新的数据,与关闭软件再重新打开数据没有区别。

14. 用pcdviewer_skip.sh脚本批量打开点云文件

        有时候,需要按一定间隔抽样调查点云效果。提供了pcdviewer_skip.sh脚本批量打开点云文件。用法为:

bash pcdviewer_skip
Usage: {pcd_folder} {skip}

        该脚本需要两个参数,第一个参数是点云文件的目录,skip是文件打开的间隔。例如,skip=10表示按每间隔10帧打开点云。

        使用按脚本需要将PCDViewer的安装目录加入系统目录。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Jacky_546287052/article/details/130904605

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf

推荐文章

热门文章

相关标签