PCDViewer是一款功能强大但操作极为简单的点云可视化和编辑软件,支持对点云的渲染显示、查询、量测、建图拼接、编辑、格式转换等功能,同时支持了pose文件、矢量文件等的显示。PCDViewer目前提供了Windows、Ubuntu18.04、Ubuntu20.04等版本。
本页面总结了PCDViewer的基本、常用操作。为正常使用文档中介绍的功能,建议用户下载最新版软件。
PCDViewer Release Page_Jacky_546287052的博客-程序员宅基地
PCDViewer Auto Rotation
目录
14. 用pcdviewer_skip.sh脚本批量打开点云文件
在安装目录下,双击PCDViewer,或者通过命令行打开PCDViewer,即可启动软件。
在Windows系统中,设置PCDViewer为点云数据(pcd, las,ply等)默认打开软件后,双击点云数据即可直接打开点云数据。
软件支持打开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格式相互转换的功能,方法是打开点云后另存为指定格式。
软件对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,可以实现对点云的全局渲染,这在有些情形下可以极大地提高点云的渲染操作效率。点击工具栏的相应按钮即可。
软件默认鼠标中键控制旋转,鼠标右键控制平移,鼠标中键控制缩放,软件支持鼠标控制方式的定制。在安装目录下,打开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.1 查询点信息
在工具栏点击点查询工具,在视口点击查询点,Point Info 框中便会显示点的全部字段信息、以及点所在的数据集信息。所选点会默认按红色高亮显示。查询点的大小可以通过Config->Inquiry Point Size进行设置,查询点的颜色可以在config.json中的inquiry_config进行配置。
5.2 量测距离
在工具栏点击量测工具,在视口中点击两点,Distance 框会显示距离信息:
5.3 量测角度和平面法向量
从4.9.1开始,软件提供了量测旋转角和旋转轴的功能,旋转轴也即为平面法向量。
计算连续3点间构成的夹角()及旋转轴(如上图)。
5.4 量测及查询信息的擦除
点击C,或点击工具栏Clear工具,可以清除查询、量测痕迹: 在Layer Tree的相应Item上,点击弹出式菜单中的Show Properties,会弹出文件的属性信息,包括点云坐标范围、半径、点数、文件路径等:
软件提供了强大的点云滤波和编辑功能。
点云地面滤波是点云处理中常用功能,软件提供了一个点云地面滤波器 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。
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轴朝向。
在测绘及SLAM中,显示连续帧点云拼接效果极为重要。软件为显示连续帧点云的拼接效果提供了方便而强大的支持。
首先加载点云pose文件,此时frame_id对应pcd点云文件的basename。例如1.pcd,其basename是1,则其frame_id为1。
然后,就可以打开需要的点云文件查看拼接效果。
借助距离量测、单帧点云的不同渲染方式等,可以很方便地查看点云拼接精度,评估点云建图质量。
颜色查找表包含类别名、类别ID、类别颜色等信息。
可以通过双击颜色从而编辑相应类别的点云颜色。
也可以通过Append、Remove等增加或减少类别,控制要进行着色的类别范围。
对不在Color Table中的类别,将按白色进行着色。
Color Table对应的软件配置文件名为lable_config.cfg,这实际上是一个utf-8编码的文本文件,用户可以直接编辑这个文件。
用户可以任意设置Color Table所在的位置,可以放置在不同面板进行显示,也可以关闭它。关闭后,如果要重新打开,可以通过Config->Color Table让其重新显示。
S/s 增加/减少点大小
P/p 使平移速度变快/变慢
Z/z 使缩放速度变快/变慢
R/r 使旋转速度变快/变慢
shift + r 开启/关闭自动旋转
Alt + x 截图(version >= 4.8.0)
W Roam快捷键
C Clear快捷键。清除点查询、距离量测、Focus(放大镜)等的相关绘制
H 只在水平方向进行旋转 -- 禁用上下旋转
V 只在竖直方向进行旋转 -- 禁用水平旋转
关于缩放的一个小技巧:支持无限放大。有时候看起来还有放大空间,但放大不动了,不是放大到头了,实际上还可以放大。多次按大写Z,放大缩放速度,然后就会发现又可以放大了。同时,按住鼠标中键拖放可以实现快速缩放。
提供了放大镜功能。放大镜实际上重置了旋转中心,极大地方便了用户操作。
1)双击鼠标修改Folder Item名字
2)点击鼠标右键弹出菜单
3)有时候Layer Tree操作空间被占满,无法出现”Add Folder”菜单选项,可以在点击鼠标右键的同时按住Alt键,就可以弹出”Add Folder”菜单选项了。
4)直接按Delete键可以直接删除Item
本软件支持矢量文件显示。矢量文件格式为.ghs,为作者自定义的一种高效的矢量格式文件。关于文件格式定义,请参考PCDViewer Release Page 及随本软件发布时附带的test_data/example_file.ghs,这是一种文本格式文件,可以用文本编辑工具直接打开。同时,作者提供了.ghs文件的读写库,上传在github上(https://github.com/XuShengpan/GeneralGraphicsFormat),感兴趣的读者可以通过文件定义、代码等进一步了解。
例如:下图显示了一个矢量文件,其中包括顶点、向量、多边形等要素。
用户可以对矢量的显示方式进行编辑:
用户可以通过Data->Clear 清除所有数据,然后重新打开新的数据。
软件具有可靠的稳定性,清除所有数据再打开新的数据,与关闭软件再重新打开数据没有区别。
有时候,需要按一定间隔抽样调查点云效果。提供了pcdviewer_skip.sh脚本批量打开点云文件。用法为:
bash pcdviewer_skip
Usage: {pcd_folder} {skip}
该脚本需要两个参数,第一个参数是点云文件的目录,skip是文件打开的间隔。例如,skip=10表示按每间隔10帧打开点云。
使用按脚本需要将PCDViewer的安装目录加入系统目录。
文章浏览阅读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..._达梦数据库导入导出
文章浏览阅读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
文章浏览阅读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
文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输
文章浏览阅读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...
文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure
文章浏览阅读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++ 字符串分割
文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答
文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。
文章浏览阅读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怎么进入
文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf