设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间15 现在时间15 缓存数据 哪怕他只唱了几句,哪怕别人不仔细听都听不到他的声音,他还是要固执的在自己的名字后面写上他的名字,从他们两个名字写在一起的第一天起,就注定了一辈子不会分开[爱心]

哪怕他只唱了几句,哪怕别人不仔细听都听不到他的声音,他还是要固执的在自己的名字后面写上他的名字,从他们两个名字写在一起的第一天起,就注定了一辈子不会分开[爱心] -- 怎么了,没什么

查看: 1311|回复: 6

Win10 系统下VisualStudio2019 配置点云库 PCL1.11.0的图文教程

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:205
  • 打卡月天数:0
  • 打卡总奖励:3193
  • 最近打卡:2023-08-27 07:15:46
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
414
主题
395
精华
0
金钱
4437
积分
837
注册时间
2022-12-20
最后登录
2025-2-17

发表于 2023-1-24 17:53:28 | 显示全部楼层 |阅读模式
一、下载PCL1.11.0
Github下载地址:https://github.com/PointCloudLibrary/pcl/releases
下载红框内的两个文件
185348meesdf2qdd7904v9.png

二、安装PCL1.11.0
2.1 安装“PCL-1.11.0-AllInOne-msvc2019-win64.exe”。
(1)选择第二个,自动添加系统变量
185348lo5jj8kpvc50v850.png

(2)安装路径选择D盘,系统会自动新建PCL 1.11.0文件夹。
185348ruolo4zfiqiqfu6o.png

2.2 安装完成之后打开文件夹 D:\PCL 1.11.0\3rdParty\OpenNI2
双击OpenNI-Windows-x64-2.2 选择路径(D:\PCL 1.11.0\3rdParty\OpenNI2)安装即可。

185348qe7esszhdslswsd3.png

2.3 全部安装完成后,将pcl-1.11.0-pdb-msvc2019-win64.zip解压后的.pdb文件拷贝到(D:\PCL 1.11.0\bin)中。
2.4 设置环境变量:右击计算机—属性—高级系统设置—高级—环境变量—用户变量—Path—编辑!
185348juul1ygzsym71ypg.jpeg

如下图所示,设置完成后重启电脑。
185349qnsldt8nzu446t38.png

在这里直接给出,防止出现错误(依次添加):
%PCL_ROOT%\3rdParty\FLANN\bin
%PCL_ROOT%\3rdParty\VTK\bin
%OPENNI2_REDIST64%
%OPENNI2_LIB64%
%OPENNI2_INCLUDE64%
到此,环境变量的配置完成。
三、VS2019相关设置
3.1 新建空项目
185349b8tz6wz6trpepwx6.png

解决方案配置选择Debug,解决方案平台选择x64。
185349mk3u3pvfjdixttch.png

3.2 新建一个C++源文件
185349y7dh66dxtdr7sr6c.png

3.3 右击新建的项目—属性:打开属性表
185350kvwts5un54aieiak.png


3.4 配置属性—调试—环境—添加:
PATH=D:\PCL 1.11.0\\bin;D:\PCL 1.11.0\\3rdParty\FLANN\bin;D:\PCL 1.11.0\\3rdParty\VTK\bin;D:\PCL 1.11.0\\3rdParty\OpenNI2\Tools
185350ptgw0gr0qwg0o5zy.png

3.5 C/C++—语言—符合模式:否
185350krutzz2b7b32if52.png

3.6 C/C++—常规—SDL检查:否
185351zc774miznwb8us37.png

四、配置PCL1.11.0
为了使用方便,这里使用添加属性表的形式
4.1 视图—其他窗口—属性管理器
185351g00jtjspkkfbyby3.jpeg

4.2 打开属性管理器之后,选择Debug|X64—单击Debug|X64左侧倒三角—右击选择 添加型项目属性表
185351dlq7arl5r3lrqq31.png

4.3 项目属性表命名
185351qfa1743gcr4e3uup.png

4.4 双击新添加的属性表—VC++目录—包含目录,添加7个include路径
185352rlnpz709qt4kltsr.png

具体添加的include路径如下:
D:\PCL 1.11.0\include\pcl-1.11
D:\PCL 1.11.0\3rdParty\Boost\include\boost-1_73
D:\PCL 1.11.0\3rdParty\Eigen\eigen3
D:\PCL 1.11.0\3rdParty\FLANN\include
D:\PCL 1.11.0\3rdParty\Qhull\include
D:\PCL 1.11.0\3rdParty\VTK\include\vtk-8.2
D:\PCL 1.11.0\3rdParty\OpenNI2\Include
4.5 VC++目录—包含目录,添加6个lib路径
185352qsc9f2ttf0hw960w.png

具体添加的lib路径如下:
D:\PCL 1.11.0\lib
D:\PCL 1.11.0\3rdParty\Boost\lib
D:\PCL 1.11.0\3rdParty\FLANN\lib
D:\PCL 1.11.0\3rdParty\Qhull\lib
D:\PCL 1.11.0\3rdParty\OpenNI2\Lib
D:\PCL 1.11.0\3rdParty\VTK\lib
185352ph66nvaqqvmmq8ad.png

4.6 C/C++—预处理器—预处理器定义—添加:
BOOST_USE_WINDOWS_H
NOMINMAX
_CRT_SECURE_NO_DEPRECATE
185353txhkikjkjria6rbj.png

4.7 链接器—输入—附加依赖项——添加PCL和VTK的相关lib文件。我用的Debug版本。
185353cbldmjmw12mds3lu.png

附加依赖项具体添加内容如下:(内容略多,放在PCL1.11.0附加依赖项里边了。文章末尾 附录中 给出批量获取附加依赖项的方法)
输入到属性表里边的时候必须一行对应一个lib才能成功。
Debug版本
4.8保存属性表
185353cr1fprdwbwztgr7d.png

下一次需要创建新项目的时候,只需进行第三步 VS2019相关设置 的操作,然后打开属性管理器,添加现有属性表,找到之前保存的属性表添加进去即可。
185353fz8ojwweii82wdfy.png

185354bym34lmu0llvlywg.png

五、测试代码
#include #include #include #include #include #include #include using namespace std;intmain(int argc, char** argv){        srand((unsigned int)time(NULL));        pcl::PointCloud::Ptr cloud(new pcl::PointCloud);        // 创建点云数据        cloud->width = 1000;        cloud->height = 1;        cloud->points.resize(cloud->width * cloud->height);        for (size_t i = 0; i < cloud->points.size(); ++i)        {                cloud->points.x = 1024.0f * rand() / (RAND_MAX + 1.0f);                cloud->points.y = 1024.0f * rand() / (RAND_MAX + 1.0f);                cloud->points.z = 1024.0f * rand() / (RAND_MAX + 1.0f);        }        pcl::octree::OctreePointCloudSearch octree(0.1);        octree.setInputCloud(cloud);        octree.addPointsFromInputCloud();        pcl::PointXYZ searchPoint;        searchPoint.x = 1024.0f * rand() / (RAND_MAX + 1.0f);        searchPoint.y = 1024.0f * rand() / (RAND_MAX + 1.0f);        searchPoint.z = 1024.0f * rand() / (RAND_MAX + 1.0f);        //半径内近邻搜索        vectorpointIdxRadiusSearch;        vectorpointRadiusSquaredDistance;        float radius = 256.0f * rand() / (RAND_MAX + 1.0f);        cout << "Neighbors within radius search at (" << searchPoint.x                << " " << searchPoint.y                << " " << searchPoint.z                << ") with radius=" << radius << endl;        if (octree.radiusSearch(searchPoint, radius, pointIdxRadiusSearch, pointRadiusSquaredDistance) > 0)        {                for (size_t i = 0; i < pointIdxRadiusSearch.size(); ++i)                        cout << "  " << cloud->points[pointIdxRadiusSearch].x                        << " " << cloud->points[pointIdxRadiusSearch].y                        << " " << cloud->points[pointIdxRadiusSearch].z                        << " (squared distance: " << pointRadiusSquaredDistance << ")" << endl;        }        // 初始化点云可视化对象        boost::shared_ptrviewer(new pcl::visualization::PCLVisualizer("显示点云"));        viewer->setBackgroundColor(0, 0, 0); //设置背景颜色为黑色        // 对点云着色可视化 (red).        pcl::visualization::PointCloudColorHandlerCustomtarget_color(cloud, 255, 0, 0);        viewer->addPointCloud(cloud, target_color, "target cloud");        viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "target cloud");        // 等待直到可视化窗口关闭        while (!viewer->wasStopped())        {                viewer->spinOnce(100);                boost::this_thread::sleep(boost::posix_time::microseconds(1000));        }        return (0);}
输出下图(数字可能不同),则表示安装成功!
185354ehpat1z17ztlhluy.png

六、附录—获取自己的链接库列表
win+r调出“运行”窗口并输出cmd
输入:cd /d D:\PCL 1.11.0\3rdParty\VTK\lib 回车 (填自己的路径)
输入:dir /b *.lib *>0.txt 回车
185354mn44fxlucy45gafq.png

这时打开你对应路劲的目录,多了一个0.txt文件,里面存了你这个文件夹里所有链接库名字。
由于每一个Debug版本和Release版本的链接库是挨在一起的。写一个读取文档并对其分别保存就行了。
具体代码如下:(主要功能是读取一个txt文件,将其中奇数行和偶数行单独输出到新的txt文档。)
#include #include #include  #include using namespace std;int main(){        ifstream txtfile;//打开读取的文件        ofstream txt01;//保存的文件        ofstream txt02;//保存的文件        string temp;        int index = 0;//用于判断奇偶        txtfile.open("0.txt", ios::in);         while (!txtfile.eof())      // 若未到文件结束一直循环        {                getline(txtfile, temp);//一行一行读取                if (index%2==0)//判断除以2的余数,即为奇偶的判断                {                        txt01.open("1.txt", ios::app);                        txt01 << temp;                        txt01 << endl;                        txt01.close();                }                else                {                        txt02.open("2.txt", ios::app);                        txt02 << temp;                        txt02 << endl;                        txt02.close();                }                index++;        }        txtfile.close();  //关闭文件        txtfile.close();        txt01.close();        txt02.close();                return 0;}


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
15
积分
10
注册时间
2022-12-26
最后登录
2022-12-26

发表于 2023-2-28 10:38:27 | 显示全部楼层
谢谢分享~~~~~
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-27
最后登录
2022-12-27

发表于 2023-10-26 14:07:54 | 显示全部楼层
感谢大大分享~~~~~~~~
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
21
积分
22
注册时间
2022-12-25
最后登录
2022-12-25

发表于 2024-4-3 11:50:51 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
16
积分
12
注册时间
2022-12-24
最后登录
2022-12-24

发表于 2024-10-10 14:42:46 | 显示全部楼层
感谢楼主,顶。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
20
积分
20
注册时间
2022-12-26
最后登录
2022-12-26

发表于 2025-2-12 22:47:58 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
19
积分
18
注册时间
2022-12-24
最后登录
2022-12-24

发表于 4 天前 | 显示全部楼层
顶顶更健康!!!
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼
4楼
5楼
6楼
7楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表