
pcl
ancy_i_cv
start...
展开
-
pcl之解决fatal error: vtkSmartPointer.h: 没有那个文件或目录
报错:fatal error: vtkSmartPointer.h: 没有那个文件或目录。vtkSmartPointer.h 路径是: /usr/include/vtk-9.1。原创 2023-05-26 18:10:57 · 3263 阅读 · 0 评论 -
pcl之从txt中读取点云
pcl之从txt中读取点云原创 2022-12-26 18:29:59 · 590 阅读 · 1 评论 -
pcl之open3d数据与pcl数据相互转换
pcl之open3d数据与pcl数据相互转换原创 2022-09-14 09:30:25 · 852 阅读 · 0 评论 -
pcl之将QVTKWidget添加到QtCreator
在终端内输入sudo find / -name libQVTKWidgetPlugin.so一般会出现两处,一处是自己编译VTK的地方,另外一处在/usr/local/plugins/designer/。进入第二处,复制libQVTKWidgetPlugin.so到以下两个地方/opt/Qt5.12.9/5.12.9/gcc_64/plugins/designer//opt/Qt5.12.9/Tools/QtCreator/lib/Qt/plugins/designer/如果安装原创 2022-02-21 18:47:40 · 1080 阅读 · 0 评论 -
linux之解决lib***.so.*: cannot open shared object file
例如:libvtkfreetype-8.2.so.1: cannot open shared object file: No such file or directory1.查找库位置 whereis libvtkfreetype-8.2.so.1libvtkfreetype-8.2.so: /usr/local/lib/x86_64-linux-gnu/libvtkfreetype-8.2.so /usr/local/lib/x86_64-linux-gnu/libvtkfreetype-.原创 2022-02-19 20:38:53 · 4397 阅读 · 0 评论 -
pcl之编译VTK时CMAKE中找不到Qt5X11Extras
sudo apt install libqt5x11extras5-dev原创 2022-02-19 19:28:36 · 857 阅读 · 0 评论 -
pcl之解决No CMAKE_CUDA_COMPILER could be found.
测试cuda是否正常安装:nvcc --version:Command 'nvcc' not found, but can be installed with:sudo apt install nvidia-cuda-toolkit原创 2022-01-23 16:06:10 · 3056 阅读 · 0 评论 -
PCL之在Debian10下配置pcl.1.9.1
1.安装依赖1. 安装pcl1.9.1的先决条件,在terminal执行以下命令:sudo apt-get update && sudo apt-get upgradesudo apt-get install gcc g++ make cmake cmake-gui debhelper dh-exec python3-sphinxsudo apt-get install libboost-system-dev libboost-filesystem-dev libboost.原创 2021-12-10 16:40:01 · 526 阅读 · 0 评论 -
PCL之区域生长分割
算法思想首先依据点的曲率值对点进行排序,之所以排序,是因为区域生长算法是从曲率最小的点开始生长的,这个点就是初始种子点,初始种子点所在的区域即为最平滑的区域,从最平滑的区域开始生长可减少分割片段的总数,提高效率。算法流程设置一空的种子点序列和空的聚类数组,选好初始种子后,将其加入到种子点序列中,并搜索邻域点。对每一个邻域点,比较邻域点的法线与当前种子点的法线之间的夹角,小于平滑阀值的将当前点加入到当前区域。然后检测每一个邻域点的曲率值,小于曲率阀值的加入到种子点序列中。在进行种子点领域判断后,删原创 2020-12-29 21:11:09 · 588 阅读 · 0 评论 -
PCL之点特征直方图(PFH)
背景表面法线和曲率估计是对某个点周围的几何特征的基本表示。虽计算速度快容易,但却无法获得太多信息,因为它们只使用很少的几个参数值来近似某个点的k-邻域特征。然而大多数场景会包含许多具有相同或非常相似的特征值的点,若采用点特征表示法将直接减少了它们的全局特征信息。理论基础PFH计算方式通过参数化查询点与领域点之间的空间差异,并形成一个多维直方图对点的k领域几何属性进行描述。直方图所在的高维超空间为特征表示提供了一个可度量的信息空间,对点云对应曲面的6维姿态具有不变性,并在不同的采集密度或领域的噪声原创 2020-12-27 18:28:42 · 2122 阅读 · 2 评论 -
PCL之积分图法线估计
积分图像是对有序点云的发现的估计的一种方法。该算法把点云作为一个深度图像,并创建一定的矩形区域来计算法线,考虑到相邻像素关系,而无需建立树形查询结构。因此,它是非常有效的。代码展示:#include<string>#include<iostream>#include<pcl/io/pcd_io.h>#include<pcl/point_types.h>#include<pcl/features/integral_image_normal原创 2020-12-26 18:47:07 · 844 阅读 · 0 评论 -
PCL之常用开源数据集汇总
由于要用到三维点云开源数据集,就汇总一下,以后方便查询:三维点云欧特克的研究——数字210金 欧特克的样品扫描和图像数据研究办公室。 自治系统实验室(乙) 激光和Kinect结构化和非结构化的数据环境。 这一组有一个有用的相关链接列表以及类似的链接 数据。 加拿大行星模拟地形三维映射的数据集 激光扫描非结构化地形从罗孚平台。 包括Matlab代码数据解析。 徕卡呈规则(投影数据) 激光扫描数据的示例数据库。 点云分类(罗蒙诺索夫莫斯科国立大学) 航空激光雷达数据和类标签。 Poi原创 2020-12-24 17:12:24 · 991 阅读 · 1 评论 -
PCL之多可视化窗口
可视化点云的时候,有时候需要显示对比,这时就需要同时显示两个甚至多个点云。viewer->createViewPort(double Xmin,double Ymin,double Xmax,double Ymax)createViewPort是用于创建新视口的函数,所需的4个参数分别是视口在X轴的最小值、最大值,Y轴的最小值、最大值,取值在0-1之间。三个可视化窗口实例#include <pcl/visualization/pcl_visualizer.h>in原创 2020-12-24 14:58:07 · 459 阅读 · 0 评论 -
PCL之ubuntu安装CloudCompare
# 安装cloudcomparesudo snap install cloudcompare# 打开查看软件cloudcompare.ccViewer# 打开主软件cloudcompare.CloudCompare原创 2020-12-24 09:49:48 · 707 阅读 · 0 评论 -
PCL之估计点云子集的表面法线
代码展示:#include <iostream>#include <string>#include <pcl/point_types.h>#include <pcl/io/pcd_io.h>#include<pcl/filters/extract_indices.h>#include <pcl/features/normal_3d.h>#include <pcl/visualization/cloud_viewe原创 2020-12-23 13:41:51 · 324 阅读 · 0 评论 -
PCL之估计整个点云表面法向量
代码展示:#include <string>#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/features/normal_3d.h> //法线估计类头文件#include <pcl/visualization/cloud_viewer.h>using namespace std;typ原创 2020-12-22 09:33:44 · 603 阅读 · 0 评论 -
PCL之Ubuntu16.04下编译libfreenect2和PCL以支持KinectV2点云处理
转载于:https://shenxiaohai.me/2018/04/26/Ubuntu-freenect2-PCL/原因就是由于 OpenNI2.2 不支持 Kinect V2,导致我没法在 PCL 中调用 Kinect 设备。在 Windows 上的尝试失败了,来一波 Linux 下的尝试。话不多说,下面是实实在在的解题步骤。第一步:libfreenect2 的编译注意:libfreenect2 是 Kinect v2 的开源驱动。如果用的是 Kinect v1, 出门右转 git .原创 2020-12-21 15:25:37 · 278 阅读 · 0 评论 -
PCL之点云配准--ICP
代码展示:#include <string>#include <iostream>#include <pcl/io/ply_io.h>#include <pcl/point_types.h>#include <pcl/registration/icp.h>#include <pcl/visualization/pcl_visualizer.h>#include <pcl/console/time.h>原创 2020-12-18 08:43:16 · 622 阅读 · 0 评论 -
PCL之点云坐标系空间转换
代码展示:#include<iostream>#include<pcl/io/pcd_io.h>#include<pcl/point_types.h>#include <pcl/common/transforms.h>#include <pcl/visualization/pcl_visualizer.h>using namespace std;typedef pcl::PointXYZ PointT;int main()原创 2020-12-17 08:59:50 · 11267 阅读 · 0 评论 -
PCL之平面分割模型
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/filters/extract_indices.h>#include <pcl/sample_consensus/model_types.h>#include <pcl/sample_consensus/method_types.h>#include .原创 2020-12-15 14:51:53 · 743 阅读 · 2 评论 -
PCL之点云分割算法概述
PCL中提供了点云分割的基础数据结构和部分通用算法,目前实现的算法主要是基于聚类分割思想和基于随机采样一致性的分割算法,以下对这两种方法的原理进行介绍:1) 基于聚类分割算法在聚类方法中每个点都与一个特征向量相关联, 特征向量又包含若干个几何或者辐射度量值.然后, 在特征空间中通过聚类的方法(如K-mean法,最大似然方法和模糊聚类法)分割点云数据.聚类分割的基本原理为:考察m个数据点,在m维空间内定义点与点之间某种性质的亲疏聚类,设m个数据点组成n类,然后将具有最小距离的两类合为一类, 并重新计算原创 2020-12-15 10:11:30 · 1490 阅读 · 0 评论 -
PCL之鼠标拾取点云的三维坐标
代码展示:#include <string>#include <pcl/io/pcd_io.h>#include <pcl/point_cloud.h>#include <pcl/point_types.h>#include <pcl/visualization/pcl_visualizer.h>using PointT = pcl::PointXYZRGB;using PointCloudT = pcl::PointClou.原创 2020-12-10 11:13:50 · 3138 阅读 · 5 评论 -
PCL之求点云的BoundingBox
代码展示:#include <string>#include <iostream>#include <Eigen/Core>#include <pcl/io/pcd_io.h>#include <pcl/point_cloud.h>#include <pcl/point_types.h>#include <pcl/common/transforms.h>#include <pcl/common/..原创 2020-12-10 09:32:06 · 4814 阅读 · 0 评论 -
PCL之K维树--KD-tree
原理:一个k-d树,或者k维的树是一个计算机科学里面的数据结构。它是一个有其它约束影响的二叉搜索树。K-d树是在深度和最近邻搜索里面很有用的。我们这次的目的是生成一个3维的k-d trees。一个k-d tree的每个层次在某个维度上分割成所有的子树,使用一个垂直于相应坐标轴的高维平面。在树的根部,所有的子树将会被分割以第一维(如果第一维坐标系比根部少,它将会成为左子树,如果比根部多,它将会成为右子树)。每一层的树将会在下一层进行分叉,它会跳转到第一层如果全部都分完了。最有效的去建立k-d tree的.原创 2020-12-08 16:27:39 · 960 阅读 · 0 评论 -
PCL之统计异常值去除滤波器--StatisticalOutlierRemoval
作用:主要用于剔除离群点,或则测量误差导致的粗差点.原理:对每一个点的邻域进行一个统计分析,计算它到所有临近点的平均距离。假设得到的结果是一个高斯分布,其形状是由均值和标准差决定,那么平均距离在标准范围(由全局距离平均值和方差定义)之外的点,可以被定义为离群点并从数据中去除。代码展示#include <iostream>#include <pcl/point_types.h>#include <pcl/point_cloud.h>#include &l原创 2020-12-07 15:52:30 · 1111 阅读 · 3 评论 -
PCL之计算点云质心---pcl::compute3DCentroid()
质心计算公式质心指的是质量的中心,认为是物体质量集中于此点的假想点。通常物体质心坐标P c P_cPc计算公式如下:其中,r i = ( x i , y i , z i ) , i = 1 , 2 , . . . , n r_i=(x_i,y_i,z_i),i=1,2,...,nri=(xi,yi,zi),i=1,2,...,n为各质点的坐标,m i m_imi为质点对应的质量。PCL函数原理计算点云质心时,令上述公式中的m i = 1 m_i=1mi=1即可,则点云..原创 2020-12-07 11:03:13 · 11498 阅读 · 0 评论 -
PCL之点云可视化--CloudViewer
点云视窗类CloudViewer是简单的可视化点云工具类,仅用几行代码就可以让用户查看点云;但需要注意的是该类不能用于多线程应用程序中。代码展示#include<pcl/point_types.h>#include<pcl/io/pcd_io.h>#include<pcl/visualization/cloud_viewer.h>int main() { pcl::PointCloud<pcl::PointXYZ>::Ptr clo原创 2020-12-06 16:37:40 · 2163 阅读 · 0 评论 -
PCL之体素网格滤波器--VoxelGrid
作用:使用体素化网格方法实现下采样,可在保持点云形状特征的情况下减少点云的数量;在提高配准、曲面重建、形状识别等算法的速度。原理:PCL实现的VoxelGrid类通过输入的点云数据创建一个三维体素栅格,然后在每个体素内,用体素中所有点的重心来近似显示体素中其他点,这样该体素内所有点就用一个重心点最终表示,对于所有体素处理后得到过滤后的点云。效果:这种方法比用体素中心来逼近的方法更慢,但它对于采样点对应曲面的表示更为准确。代码展示:#include <iostream>#i..原创 2020-12-06 13:18:03 · 2221 阅读 · 0 评论 -
PCL之直通滤波--PassThrough
作用: 过滤掉指定字段上用户定义范围空间内的点集。原理:首先,指定字段及该字段下的取值范围;其次,遍历点云中的每个点,删除取值不在值域内的点;最后,遍历结束,留下的点即构成滤波后的点云效果: 简单高效,适用于消除背景等操作。关键成员函数:void setFilterFieldName (const std : :string &field_name)设置限定字段的名称字符串 field_name ,若输入点云类型为PointXZY, 则field_name 可以为x 或 y 或z原创 2020-12-04 09:46:41 · 1438 阅读 · 0 评论 -
PCL之默认距离单位
PCL的默认距离单位是:m原创 2020-12-04 09:07:41 · 1647 阅读 · 0 评论