cout << "write File 1.las" << endl;
LASwriteOpener lasWriterOpener;
lasWriterOpener.set_file_name("2.las");
LASwriter* lasWriter = lasWriterOpener.open(&lasHeader);
lasreadopener.set_file_name(Path.c_str());
lasreader = lasreadopener.open();
int i = 0;
while (lasreader->read_point() && i < red.size())
LASpoint& p = lasreader->point;
p.set_x(pts[i].x());
p.set_y(pts[i].y());
p.set_z(pts[i].z());
p.set_R(red.at(i));
p.set_G(green.at(i));
p.set_B(blue.at(i));
lasWriter->write_point(&p);
lasWriter->update_inventory(&p);
++i;
lasWriter->update_header(&lasHeader, true);
lasWriter->close();
delete lasWriter;
lasWriter = nullptr;
这里只有改变颜色信息,所以直接读取后修改其颜色信息就行
最近做的QT项目涉及计算几何库,需要用到CGAL,其配置着实麻烦,而且相互关联的软件也存在版本兼容一类的问题,在这里就对其配置流程做一些整理说明,以便后来者能够少些烦恼。(注:以下使用Win10作说明)
本流程前题条件
VS+QT的配置已经没有问题
CGAL配置相关软件说明
在CGAL官网下载页面上有相关软件的安装配置说明(Download CGAL for Windows...
CGAL是Computational Geometry Algorithms Library(计算几何算法库)的缩写,C++的高效算法库。笔者编译的是CGAL 5.2版本。
一、重要版本节点
CGAL 4.9:编译示例时,可以只使用头文件,不需要编译和连接库。但是为了生成一些配置文件,仍然需要CMake一下。
CGAL 4.12:header-only library 不需要CMake就可以使用CGAL,引用头文件即可。(CGAL的模板有点令人头大)
CGAL 5.0:仅引用头文件使用CGAL是默认
#导入LasTools库
INCLUDEPATH += D:\LAStools\include\LASlib //.cpp文件以及.h文件路径
LIBS += -LD:\LAStools\lib\LASlib\Release\ //.lib文件路径
之前用OpenGL+Qt的方式进行点云可视化,奈何OpenGL太高级,太底层了,什么都要自己搞,虽然最后也搞出来一套,但是花了太大的力气才搞完,现在在回过头看看以前的代码,好多都要想一下才能明白。
最近项目要用到PCL进行点云处理,然后了解了PCL使用vtk进行可视化。然后研究了一下vtk,过程中走了不少弯路,现在把一些经验总结一下,算是给自己这段时间的研究一个交代。
我用的环境是VS2019 + Qt5.13 + PCL 1.11 + 自己编译的VTK8.2,基本上算是最新的了。
CGAL是一款几何处理库,但是介绍其在点云中处理的资料比较少,现介绍一个专门介绍CGAL在点云数据中处理的网站,比包括常见的点云数据处理。功能包括:
(1)聚类 (欧式聚类) (2)配准 (ICP) (3)简化(格网) (4)平滑 (5)法向量估算 (6)特征估算
每个函数均有详细的案例介绍,应该可以可视化。感兴趣的小伙伴可以去看看,学习
最后附上官网:CGAL 5.4 - Point Set Processing: User Manual
首先我用的平台和库的版本是:Qt Creator 2.5.0 + Qt 4.8.2 + CGAL-4.1+ Boost1.15+CMake2.8.8
一.名词解释
1.CGAL(Computational Geometry Algorithm Library)是一个开源的C++库,用于提供方便高效可靠的几何计算。该库提供数据结构和算法用于三角剖分,Voronoi图,多边形和多面体布尔运算,曲线
在之前的博客《学习CGAL:编译第一个工程》中,我成功生成了工程并编译,也貌似成功让CGAL的算法执行了。不过,我在执行工程中的draw_triangulation_2项目时,好像并没有达到期望的效果:
看起来这个程序应该能“画”出来什么东西,然而现在失败了。我想,这是因为CGAL本身只是包含算法的,要想可视化必须额外做些事情。
回头看官方文档可以发现,其实它已经提示了:很多CGAL包是有额外的依赖的(官方文档:CGAL所依赖的一些第三方库),例如在之前的工程中,如果没有安QT就会在CMake配