首页 > 其他分享 >关于Winform+KitWare.VTK+PCL处理3D点云文件的编译环境

关于Winform+KitWare.VTK+PCL处理3D点云文件的编译环境

时间:2023-12-06 15:37:29浏览次数:35  
标签:文件 1.13 -- VTK KitWare pcl 安装 PCL

最近项目需求,在网上找了一个处理3D点云文件的源码,但是发现无法编译,研究了下原来是电脑环境问题,必须配置一个PCL库的环境才能使用,下面进入正题。

首先需要安装PCL环境,可以通过vcpkg安装(因为我没有成功,所以请自行查找),我是一直卡在装载pcl环节失败,网上搜了很多解决方法,包括重装VS英文语言包、关闭杀毒等等都没有解决。

后来我是直接安装PCL,手动配置环境的。参考引文:win10+vs2019+pcl1.11.0安装教程_pcl 11-CSDN博客

步骤具体如下:

第一步:从github下载最新发布版PCL,下图中PCL-1.13.1-AllInOne-msvc2022-win64.exe和pcl-1.13.1-pdb-msvc2022-win64.zip两个文件,网址:Releases · PointCloudLibrary/pcl (github.com)

注意需要和VS版本配套,我使用的是pcl1.13.1和VS2022。

GitHub打不开的时候,急用的话可以从下面的链接直接下载:

【免费】点云pcl库pcl-1.13.1版本资源-CSDN文库

第二步:安装下载好的PCL-1.13.1-AllInOne-msvc2022-win64.exe,安装路径我用了默认路径C:\Program Files\PCL 1.13.1

注意选择Add PCL to the system PATH for all users,使环境变量自动添加到系统中。

安装到最后会跳出OpenNI的安装提示,默认会直接安装到C盘,此时将路径选择PCL已有的安装目录下C:\Program Files\PCL 1.13.1\3rdParty\OpenNI2,

如果没有注意,安装到了默认路径,也可以在PCL的OpenNI2文件夹里找到安装包,卸载OpenNI后重新安装即可。

第三步:解压pcl-1.13.1-pdb-msvc2022-win64.zip,将文件夹里的内容复制到C:\Program Files\PCL 1.13.1\bin中。

 第四步:配置环境变量,我的电脑-->属性-->高级系统设置-->高级-->环境变量-->系统变量-->Path

可以看到已经有两个路径已经添加,就是pcl安装的时候选自动添加的。下面我们需要手动添加一下第三个...\OpenNI2\Redist的路径。添加后重启电脑。

第五步:在项目中配置pcl

打开VS项目,编译环境改为Release,x64版本。

 打开项目的属性管理器,视图-->其他窗口-->属性管理器

在Release|x64下面添加新项目属性表,命名为pcl(可自定义)

 进入新加属性表的属性,在VC++目录中,添加包含目录和库目录。

包含目录中内容:

 库目录中内容:

 在C/C++-->预处理器-->预处理器定义,添加如下:

BOOST_USE_WINDOWS_H
NOMINMAX
_CRT_SECURE_NO_DEPRECATE

 在C/C++-->所有选项-->SDL检查下,改为否

在链接器-->输入-->附加依赖项中,将路径C:\Program Files\PCL 1.13.1\lib和路径C:\Program Files\PCL 1.13.1\3rdParty\VTK\lib,这两个路径文件夹内的release版本文件添加到附加依赖项中。

请注意文件夹内会有两个版本的文件,一个是debug版本,一个是release版本,只需要release版本的文件。

(里面有很多文件,不可能一个个手动去加的,办法是导出整个文件内的文件名再通过奇偶行去区分,便捷方法怎么使用请参考上面的引文链接)

导出文件名命令:

dir /b *.lib*>list.txt

奇偶行辨别分别导出到txt:

string inputFile = @"C:\Users\...\Desktop\0.txt";
string oddLinesFile = @"C:\Users\...\Desktop\1.txt";
string evenLinesFile = @"C:\Users\...\Desktop\2.txt";

// 读取输入文件中的所有行
string[] lines = File.ReadAllLines(inputFile);

// 创建奇数行和偶数行的文件流
using (StreamWriter oddWriter = new StreamWriter(oddLinesFile))
using (StreamWriter evenWriter = new StreamWriter(evenLinesFile))
{
    // 遍历所有行
    for (int i = 0; i < lines.Length; i++)
    {
        // 奇数行写入奇数行文件
        if (i % 2 == 0)
        {
            oddWriter.WriteLine(lines[i]);
        }
        // 偶数行写入偶数行文件
        else
        {
            evenWriter.WriteLine(lines[i]);
        }
    }
}
Console.WriteLine("奇数行已保存到 " + oddLinesFile);
Console.WriteLine("偶数行已保存到 " + evenLinesFile);

最后还要修改项目属性-->C/C++-->所有选项-->SDL检查-->改为否。注意左上角是项目的属性,不是刚才属性表的属性。

 到此,PCL环境配置完毕,可以编译使用PCL库的VS项目了

 

标签:文件,1.13,--,VTK,KitWare,pcl,安装,PCL
From: https://www.cnblogs.com/blossomwei/p/17879640.html

相关文章

  • PCL基础
    读取点云文件stringlane_cluster_path="demo.pcd";pcl::PointCloud<pcl::PointXYZRGB>::Ptrcloud(newpcl::PointCloud<pcl::PointXYZRGB>());if(pcl::io::loadPCDFile(lane_cluster_path,*cloud)==-1){ cout<<"loadlane_clusterpcder......
  • 随笔(三十三)『apache FtpClient操作文件遇到的坑』
    1、需求扫描完文件后把文件放到backup备用目录下2、使用方案用了io流一行行读取用了ftpClient.retrieveFileStream(path)获取流用了ftpClient.changeWorkingDirectory(backupDirPath)切换目录判断是否需要创建备用目录用了ftpClient.rename(sourceFilePath,backupFilePath......
  • DELPHI WIn7下使用 NetHttpClient 请求HTPPS 网站
    转载自:WIn7下使用NetHttpClient请求HTPPS网站-EEEEEEEEEEEEEEEEEEE-博客园(cnblogs.com)WIn7下使用NetHttpClient请求HTPPS网站在WIN7下使用HttpClient会报以下两种错;1ServerCertificateInvalidornotpresent2Errorsendingdata:(12175)发生了安......
  • C# HttpClient 基本使用方式(一)
    .NetCore主要提供了HttpWebRequest,WebClient,HttpClient这三种访问web的方式,其中HttpWebRequest,WebClient都在官方被标注为已过时,如果没有特殊需求,一般情况下还是使用官方推荐的HttpClient方式。HttpClient的基本使用方法使用HttpClient发送请求一般是如下几步:1.创建HttpClien......
  • Java使用HttpClient实现GET和POST请求
    GET请求(带参数)前端exportconstgetRealTimeData=(deviceLabel)=>{returnrequest({url:'/blade-inorganization/Data/realTime-data?deviceLabel='+deviceLabel,method:'get',})}import{getRealTimeData}from"@/api/......
  • PCL点云滤波代码
    PCL点云滤波代码实例1.直通滤波:PassThrough直接指定保留哪个轴上的范围内的点#include<pcl/filters/passthrough.h>如果使用线结构光扫描的方式采集点云,必然物体沿z向分布较广,但x,y向的分布处于有限范围内。此时可使用直通滤波器,确定点云在x或y方向上的......
  • 从头开始一个vtk.js项目
    从头开始一个vtk.js项目初始化项目mkdirmy-vtkjs-appcdmy-vtkjs-appnpminit安装@kitware/vtk.js依赖npminstall@kitware/vtk.js对于这个例子,我们将使用webpack来构建我们的应用程序。npminstall-Dwebpack-cliwebpackwebpack-dev-server项目脚手架我们......
  • C# httpClient.PostAsync时出现问题Result =“ {尚未计算}”
    返回错误1:Id=3129,Status=WaitingForActivation,Method="{null}",Result="{Notyetcomputed}"返回错误2:发生了一个或多个错误Oneormoreerrorsoccurred.atSystem.Threading.Tasks.Task.ThrowIfExceptional(BooleanincludeTaskCanceledExceptions)......
  • PCL滤波大全、原理+代码实例+操作步骤
    #include<pcl/filters/passthrough.h>滤波代码实例:1//Createthefilteringobject2pcl::PassThrough<pcl::PointXYZ>pass;//声明直通滤波3pass.setInputCloud(cloud);//传入点云数据4pass.setFilterFieldName("z");......
  • PCL点云读取与保存
     PCL点云读取与保存:1#include<iostream>2#include<string>34#include<pcl/io/io.h>5#include<pcl/io/pcd_io.h>6#include<pcl/point_types.h>7#include<pcl/visualization/pcl_visualizer.h>89usingnamespa......