项目实训(6)qt与pcl1

项目实训(6)qt与pcl1,第1张

一、序言:

想要在qt中显示出来我们需要的图像还需要进一步的配置工作。

不过这部分工作基本上都已经配置完成了。我需要做的仅仅是在qt之中再添加一下pcl的头文件。

这个地方的配置也是在复杂,竟然配置了两天……

二、QT配置pcl

网上给出的参考代码;

根据这些参数可以获得读取到点云信息并进行可视化;

#include 
#include 
#include
#include 
#include 

using namespace std;
int main(int argc, char** argv)
{

	 //读取点云
 	pcl::PCDReader reader;
 	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new 	pcl::PointCloud<pcl::PointXYZ>);
	reader.read("E:/code/date/table.pcd", *cloud);
 	//点云可视化
 	pcl::visualization::CloudViewer  viewer("cloud_viewer");
 	viewer.showCloud(cloud);

 	while (!viewer.wasStopped())
 	{
  		//viewer.spinOnce();
	 }

	return(0);
}

三、路径问题

四、解决方法

添加得pcl库信息

NCLUDEPATH +=  “/usr/include/pcl-1.8/“    \
                “/usr/include/pcl-1.8/pcl” \
                “/usr/include/flann/“      \
                “/usr/include/eigen3/“     \
                “/usr/include/pcl-1.8/pcl/visualisation/vtk”     \
                “/usr/include/boost”       \

需要将这些信息改到本地化;
例如:

另一种写法:(这个成功了)

#Eigen
INCLUDEPATH += /usr/include/eigen3
 
#Vtk
INCLUDEPATH += /usr/include/vtk-5.10
 
LIBS += /usr/lib/libvtk*.so
 
#Boost
INCLUDEPATH += /usr/include/boost
 
LIBS += /usr/lib/x86_64-linux-gnu/libboost_*.so
 
#PCL Header
INCLUDEPATH += /usr/include/pcl-1.8
 
#PCL Lib
LIBS        += /usr/lib/x86_64-linux-gnu/libpcl_*.so \

关于vtk信息:

这个地方用的vtk是pcl自带的,不仅如此,里边还有各种python、boost各种库的底层vtk。

但是要求的是独立的vtk?果然,这里就出问题了。

错误 C1083 无法打开包括文件: “vtkSmartPointer.h”: No such file or directory
本来的包含目录是 D:\Program Files\PCL 1.9.1\3rdParty\VTK\include
得加上 D:\Program Files\PCL 1.9.1\3rdParty\VTK\include\vtk-8.1
我也不知道为什么

不过这个解决方案是windows的,还是得去pcl下看。结果发现里边只有四个头文件?

看来windows和linux确实有差别。不过在找的过程中看到6.3版本的,直接按上竟然显示成功了。

五、测试

需要找个pcd文件进行测试,网上找的测试文件不知道为什么只有三个色块。

在大佬的建议下自己写了个测试pcd,(画了个球;

#include  
#include 
#include 

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
    viewer.setBackgroundColor (1, 1, 1);
    pcl::PointXYZ ball;
    ball.x = 1.0;
    ball.y = 0;
    ball.z = 0;
    viewer.addSphere (ball, 10, "sphere", 0);   
}

int main ()
{
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
    pcl::visualization::CloudViewer viewer ("My Cloud Viewer"); 
    viewer.runOnVisualizationThreadOnce (viewerOneOff);
    while (!viewer.wasStopped ())
    {
    }
    return 0;
}

配置成功!

六、参考资料

《QT+PCL 第一章》:点云读取显示_小修勾的博客-CSDN博客_qt 点云显示

https://blog.csdn.net/weixin_43236944/article/details/123532526

点云可视化_(1)两种可视化 *** 作_小修勾的博客-CSDN博客_点云可视化

linux下无法打开包括文件:“pcl/io/pcd_io.h”: No such file or directory_假老练啊哦的博客-CSDN博客

QT工程添加PCL库 | 晟洋的后花园 (ttoto.github.io)

https://blog.csdn.net/qq_39758080/article/details/87454318

PCL:点云数据(*.pcd)文件格式详解_孙 悟 空的博客-CSDN博客_pcd文件格式

pcl画圆球_PCL 可视化-阿里云开发者社区_Miss.94364的博客-CSDN博客

PCL学习(二)常见图形的可视化_梦醒时分1218的博客-CSDN博客

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/716961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存