PCL学习笔记(五)-- VS2019配置LASlib

1)准备工作

  完成PCL的环境设置后,下载LAStool:http://lastools.github.io/download/LAStools.zip

  并解压到指定的文件夹,这里我为了配置环境方便,就放在了PCL文件夹下:

 

   打开Visual Studio2019,打开已有的项目或解决方案,选择lastools.dsw打开,项目会自动迁移,有一些项目因为LASlib是在vc++ 6.0上编译的没法打开,选择确定就可以了。

  对于加载失败的文件,选择卸载即可:

2)修改代码

  打开LASlib模块的头文件mydefs.hpp,定位到69行,只保留 #if defined(_MSC_VER),删除或注释该行其它代码。

3)配置环境

  由于之前配置的PCL是在64位环境下,所以这里也需要将lastool配置为64位。右击lastool项目,打开属性页 -- 配置属性 -- 配置管理器 -- 选择X64平台:

  右击打开LASlib的属性页,选择配置属性 -- 常规,更改以下内容:

  (1)输出目录改为:$(SolutionDir)$(ProjectName)\$(Configuration)\

  (2)配置类型改为:静态库

  (3)Windows SDK版本改为:最新安装的版本即可

  (4)打开C/C++,选择代码生成 -- 运行库,更改为多线程DLL(/MD):

  (5) 打开C/C++,选择常规 -- 附加包含目录,删去:…\laszip\stl

  注意:这里的配置是在活动Debug下配置的,如果要配置Release,还需要重新配置一次。

4)生成lib文件

  在Debug和Release版本下,选择LASlib,先进行代码清理,然后再生成,在对应的LASlib下,可以找到生成的lib文件:

  带D的是Debug版的,不带D的是Release版的。

5)配置PCL环境 

  (1)打开之前配置的PCLEnvironmentSet,右击项目,打开属性,选择VC++目录 -- 包含目录,添加以下目录:

D:\PCL 1.12.0\LAStools\LASlib\inc
D:\PCL 1.12.0\LAStools\LASzip\src

  (2)选择VC++目录 -- 库目录,添加库目录:

D:\PCL 1.12.0\LAStools\LASlib\lib

 (3)打开链接器,选择输入 -- 附加依赖项,添加:LASlibD.lib或者LASlib.lib,这根据你配置的编译器是Debug还是Release。

6)测试代码

int main()
{
	//打开las文件
	LASreadOpener lasrReadOpener;
	lasrReadOpener.set_file_name("E:\\PCL\\example\\source\\ground.las");
	LASreader* lasReader = lasrReadOpener.open(false);
	size_t count = lasReader->header.number_of_point_records;
	pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
	cloud->width = count;
	cloud->height = 1;
	cloud->resize(count);
	cloud->is_dense = false;

	double xOffset = lasReader->header.x_offset;// 偏移值
	double yOffset = lasReader->header.y_offset;
	double zOffset = lasReader->header.z_offset;

	size_t j = 0;
	while (lasReader->read_point() && j < count)
	{
		cloud->points[j].x = lasReader->point.get_x() - xOffset;
		cloud->points[j].y = lasReader->point.get_y() - yOffset;
		cloud->points[j].z = lasReader->point.get_z() - zOffset;
		cloud->points[j].r = lasReader->point.get_R();
		cloud->points[j].g = lasReader->point.get_G();
		cloud->points[j].b = lasReader->point.get_B();

		++j;
	}
	pcl::io::savePCDFileASCII("XX.pcd", *cloud);

	boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));
	pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB> rgb(cloud);// 显示RGB
	viewer->addPointCloud<pcl::PointXYZRGB>(cloud, "sample cloud");
	viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "sample cloud"); // 设置点云大小

	while (!viewer->wasStopped())
	{
		viewer->spinOnce(100);
		boost::this_thread::sleep(boost::posix_time::microseconds(100000));
	}

	return 0;
}

显示效果如下:

 虽然看上去黑黢黢的,但其实是有点的:

 

 

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值