- 博客(63)
- 收藏
- 关注
原创 无序点云预处理
点云的预处理主要包括:点云去噪和点云的简化点云的去噪主要是去除离群点点云的平滑处理去除离群点方法:半径滤波和统计滤波平滑处理方法:双边滤波和导向滤波点云简化:体素滤波去除背景:主要是去除地面方法:渐进形态学滤波,平面拟合,布料法统计滤波半径滤波导向滤波GuildFilter.hmain...
2022-06-09 17:12:16 619
原创 PCL循环分割多个平面
#include <iostream>#include <pcl/point_cloud.h>#include <pcl/point_types.h>#include <pcl/io/pcd_io.h>#include <pcl/visualization/pcl_visualizer.h>#include <pcl/filters/voxel_grid.h>#include <pcl/filters/approxi.
2022-05-18 16:31:22 716 3
转载 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::PointXYZ;using PointCloudT = pcl::PointCloud<PointT&
2022-04-28 15:04:12 2900
原创 PCL区域生长的代码实现
---------原理介绍:(1)首先计算出来各点的曲率值,将曲率值按照从小到大的顺序进行排序。(2)设置一空的种子点序列和一个空的聚类数组。(3)选取曲率最小的点放入上述种子点序列中。(4)从序列中拿出来一个种子点搜索其邻域。(5)搜索到邻域后,这些点先过法线夹角阈值,通过的保留到聚类数据,然后再从这些通过法线夹角阈值的点中,检查是否通过曲率阈值,通过的加入种子点序列。即比较邻域点的法线与当前种子点法线之间的夹角,如果小于阈值将该邻域点加入聚类数组。再从这些小于法线阈值的点中判断是否小于曲率阈值
2022-04-21 15:37:29 323
原创 PCL提取点云的边界
#include <iostream>#include <pcl/point_types.h>#include <pcl/point_cloud.h>#include <pcl/io/pcd_io.h>#include <pcl/features/normal_3d.h>#include <pcl/features/boundary.h> //边界提取#include <pcl/visualization/pcl_vi
2022-04-20 17:54:39 2378 4
原创 根据法线得到点云曲率
曲率的定义:在计算点云的法向量时,该点的曲率就被计算出来了,下面是pcl::Normal的结构体struct Normal : public _Normal{ inline Normal (const _Normal &p) { normal_x = p.normal_x; normal_y = p.normal_y; normal_z = p.normal_z; data_n[3] = 0.0f; curvature
2022-04-19 17:28:17 735
原创 用sift提取的特征点进行ftfh描述
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/common/io.h>#include <pcl/keypoints/sift_keypoint.h>#include <pcl/features/normal_3d.h>#include <pcl/visualization/pcl_visua
2022-04-08 15:17:59 163
原创 用FPFH进行特征点的提取
#include <iostream>#include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/visualization/cloud_viewer.h> #include <pcl/visualization/histogram_visualizer.h>#include <pcl/point_types.h>#include <pcl
2022-04-04 20:02:43 719
原创 PFH与FPFH的代码实现
FPFH#include <iostream>#include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/visualization/cloud_viewer.h> #include <pcl/visualization/histogram_visualizer.h>#include <pcl/point_types.h>#include &l
2022-04-04 17:38:03 458
原创 牛奶盒子识别的代码
#include <pcl/io/pcd_io.h> // IO头文件用于传输pcd格式文件#include <pcl/point_cloud.h> // 点云头文件#include <pcl/correspondence.h> // 点,描述符等之间的匹配头文件#include <pcl/features/normal_3d_omp.h> // OMP加速计算点云法向#include <pcl/fe
2022-04-04 16:08:32 258
转载 特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释
特征匹配(Feature Match)是计算机视觉中很多应用的基础,比如说图像配准,摄像机跟踪,三维重建,物体识别,人脸识别,所以花一些时间去深入理解这个概念是不为过的。本文希望通过一种通俗易懂的方式来阐述特征匹配这个过程,以及在过程中遇到的一些问题。首先我通过几张图片来指出什么是特征匹配,以及特征匹配的过程。在这里插入图片描述图像二:在这里插入图片描述图像一与图像二的匹配:在这里插入图片描述**概念理解:**什么是特征,什么是特征描述,什么是特征匹配假设这样的一个场景,小白和小黑都在看一个
2022-04-03 15:21:24 729
原创 3D包围盒子
#include <vector>#include <thread>#include <pcl/features/moment_of_inertia_estimation.h>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/visualization/cloud_viewer.h>using namespace std::chrono
2022-04-01 10:51:25 249
原创 无序,有序点云的法线及可视化
无序点云的法线特征及可视化#include <pcl/io/io.h>#include <pcl/io/pcd_io.h>#include <pcl/features/integral_image_normal.h> //法线估计类头文件#include <pcl/visualization/cloud_viewer.h>#include <pcl/point_types.h>#include <pcl/features/nor
2022-03-31 13:39:35 554
转载 E0135 class “pcl::visualization::PCLVisualizer“ 没有成员 “camera_“
配置:VS2017+PCL1.8.1问题:编译《点云库PCL从入门到精通》第五章可视化深度图像例程时编译器报错"camera_":不是"pcl::visualization::PCLVisualizer"的成员,报错代码如下: viewer.camera_.pos[0] = pos_vector[0]; viewer.camera_.pos[1] = pos_vector[1]; viewer.camera_.pos[2] = pos_vector[2]; viewer.camera_.f
2022-03-29 17:27:39 1036
原创 VoxelGrid滤波器对点云进行下采样
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/filters/voxel_grid.h>intmain(int argc, char** argv){ pcl::PCLPointCloud2::Ptr cloud(new pcl::PCLPointCloud2()); pcl::PCLPointCloud2::Ptr
2022-03-25 09:58:33 116
转载 C2653 “sensor_msgs”: 不是类或命名空间名称
运行点云库pcl入门到精通第6章第二个体素化格网下采样代码的时候,编译运行报错。“error C2653: “sensor_msgs”: 不是类或命名空间名称”出现错误是因为在PCL1.8中将PointCloud2加入了pcl名字空间,sensor_msgs是旧的方式,不再使用。 sensor_msgs::PointCloud2::Ptr cloud (new sensor_msgs::PointCloud2 ()); sensor_msgs::PointCloud2::Ptr cloud_fi
2022-03-25 09:56:39 822
转载 PCL中VTK无法实现点云法向量可视化:Error: no override found for ‘vtkActor‘.
在这里插入图片描述在这里插入图片描述0x00007FF6B322B264处(位于MLS.exe 中)引发的异:OxCO000005:写入位置Ox0000000000000158时发生访问冲突。错误之处不在于点云法向量的估计过程,而在于点云法向量的可视化过程,对应到程序中语句部分,应该是添加的类似以下语句造成的:view->addPointCloudNormalspcl::PointNormal(mls_points_normal, 10, 10, “normal”);1针对以上的报错,问题
2022-03-24 17:23:03 396
转载 VTK调试报错:error LNK2001: 无法解析的外部符号
https://blog.csdn.net/wangxiao7474/article/details/69853576?utm_source=blogxgwz4
2022-03-24 17:11:19 427
原创 在一个窗口显示两个点云文件
#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/visualization/pcl_visualizer.h>typedef pcl::PointXYZ PointT;int main(int argc, char** argv){ // All the objects needed pcl::PCDReader reader; // Datasets pc.
2022-03-24 15:52:23 364
原创 E0135 namespace “pcl::search“ 没有成员 “KdTree“
在代码的开头加一行#include<pcl/search/impl/kdtree.hpp>
2022-03-21 19:00:46 1776 3
原创 error C2048 :int main()无法重载/已存在主体
程序中有两个main函数造成的。.cpp文件中有一个main;.hpp文件中也生成了一个main函数,将其中一个函数的函数名称改一下就可以了
2022-03-21 11:04:43 1399
转载 “camera_“:不是“pcl::visualization::PCLVisualizer“的成员
配置:VS2017+PCL1.8.1问题:编译《点云库PCL从入门到精通》第五章可视化深度图像例程时编译器报错"camera_":不是"pcl::visualization::PCLVisualizer"的成员,报错代码如下: viewer.camera_.pos[0] = pos_vector[0]; viewer.camera_.pos[1] = pos_vector[1]; viewer.camera_.pos[2] = pos_vector[2]; viewer.camera_.f
2022-03-18 11:09:09 291
原创 error :E0020 未定义标识符 “sleep“
E0020 未定义标识符 “sleep” 解决方法:在pcl_macros.h文件中将pcl_sleep(x) d=的宏定义sleep(x) 改为Sleep(x)【】文件位置D:\PCL1.8.1\include\pcl-1.8\pcl\pcl_macros.h语句位置:
2022-03-16 15:23:32 649
原创 error C4996 ‘pcl::SAC_SAMPLE_SIZE‘
error C4996 ‘pcl::SAC_SAMPLE_SIZE’: This map is deprecated and is kept only to prevent breaking
2022-03-16 10:41:23 212
原创 PCL入门——点云平面分割
点云平面分割#include <iostream>#include <pcl/console/parse.h>#include <pcl/filters/extract_indices.h> // 由索引提取点云#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/sample_consensus/ransac.h>
2022-03-15 16:38:30 2303
原创 PCL入门——Kd tree
Kd tree对于区间和近邻搜索十分有用,使用 KdTree 查找特定点或位置的 K 个最近邻域,然后我们还将介绍如何查找用户指定的某个半径内的所有相邻要素(在本例中为随机)#include <pcl/point_cloud.h>#include <pcl/kdtree/kdtree_flann.h>#include <iostream>#include <vector>#include <ctime>intmain (int a
2022-03-15 10:42:07 213
原创 PCL入门——PCD文件的读与写
从PCD文件中读取点云数据及其代码解释#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>intmain (int argc, char** argv){ pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);//创建POintClou
2022-03-15 10:12:39 1015
原创 PCL入门(二)——PCD
PCD 不是第 一个支持 3D点云数据的文件类型,尤其是计算机图形学和计算几何学领域,已经创建了很多格式来描述任意多边形和激光扫描仪获取的点云。常见的有下面几种格式:PLY 是一种多边形文件格式 , 由 Stanford 大学的 Turk 等人设计开发;STL 是 3D Systems 公司创建的模型文件格式,主要应用于 CAD 、 CAM领域 ;OBJ 是从几何学上定义的文件格式,首先由 Wavefront Technologies 开发;其他格式以上所有格式都有其优缺点,因为他们是在不同时期为
2022-03-15 09:43:17 883
原创 PCL入门(二)——点云可视化
利用CloudViewer实现点云可视化#include <pcl/visualization/cloud_viewer.h>#include <iostream>#include <pcl/io/io.h>#include <pcl/io/pcd_io.h>//pcl中PCD文件读写类的头文件int user_data;voidviewerOneOff(pcl::visualization::PCLVisualizer &viewe
2022-03-15 09:28:35 2122 1
原创 PCL入门(一)--基本数据类型
基本数据类型PCL是处理点云数据的一个第三方库,在PCL中PointCloud是一个PointCloud是一个C++的*模板类 *,类模板的格式template <typename T1,typename T2,…>class <类名>{<成员说明>};类模板的实例化类名<typename ,typename> 实例化的类名PointCloud模板template class PCL_EXPORTS PointCloud{……}模
2022-03-15 09:10:20 2978
原创 点云入门——Ply,Obj转换PCD
#include #include <pcl/common/io.h>#include <pcl/point_cloud.h>#include <pcl/point_types.h>#include <pcl/PolygonMesh.h>#include <vtkSmartPointer.h>#include <vtkPolyData.h>#include <pcl/io/pcd_io.h>#include
2022-03-14 21:58:04 732
原创 Error: no override found for ‘vtkPolyDataMapper‘
vs2017+pcl1.8执行报错:Generic Warning: In C:\Build\3rdParty\x64\VTK-7.0.0\Rendering\Core\vtkPolyDataMapper.cxx, line 28Error: no override found for ‘vtkPolyDataMapper’.解决办法:第一步:在源代码中添加下面三条代码#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL
2022-03-14 17:00:14 709
原创 100以内的素数(java)
public class for循环 {public static void main(String[] args){for(int i=1;i<=100;i++){for(int j=2;j<i;j++){if(i%j==0){break; } else { if(j<i-1) { continue
2021-11-05 17:13:38 131
原创 防火墙的web配置
防火墙:它是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。在网络中,所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,
2021-04-08 11:02:03 2292 4
原创 端口聚合的配置
搭建如图所示拓扑配置过程1.分别在两个交换机上创建trunk组int eth-trunk 端口号(1)配置端口类型port link type trunk配置端口允许通过的VLANport trunk all-pass valn all将端口加入eth-trunk 1 小组int g0/0/1eth-trunk 1int g0/0/2eth-trunk 1两个交换的配置的命令完全相同查看eth-trunk 1的端口信息...
2021-03-26 11:17:25 2057
转载 端口聚合与负载均衡
数据流是指一组具有某个或某些相同属性的数据包。这些属性有源MAC地址、目的MAC地址、源IP地址、目的IP地址、TCP/UDP的源端口号、TCP/UDP的目的端口号等。对于负载分担,可以分为逐包的负载分担和逐流的负载分担。逐包的负载分担在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,就会产生同一数据流的第一个数据帧在一条物理链路上传输,而第二个数据帧在另外一条物理链路上传输的情况。这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情
2021-03-26 11:05:15 2709
原创 STP与端口聚合的比较
生成树协议(STP)该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。缺点1、拓扑收敛慢,当网络拓扑发生改变的时候,生成树协议需要50-52秒的时间才能完成拓扑收敛。2、不能提供负载均衡的功能。当网络中出现环路的时候,生成树协议简单的将环路进行Block,这样该链路就不能进行数据包的转发,浪费网络资源。端口聚合端口聚合也叫做以太通道(ethernet channel),主要用于交换机之间连接。使用以太通道的话,交换
2021-03-26 10:07:17 814
原创 OSPF的报文格式
OSPF的报文:1、Hello报文:发现和建立邻居关系,维护OSPF的邻居关 系以太网 每10秒钟发送一次,如果4倍的Hello时间没有收到OSPF的Hello报文,就会认为邻居的失效2、DBD报文:用来同步LSA的摘要信息3、LSR报文:用来请求具体的一条LSA4、LSU报文:包括具体的LSA信息5、LS ACK报文:确认信息,用来确认具体的LSA信息OSPF的头部信息:Version:版本号V2(IPV4) V3(IPV6)Type:消息类型(1、Hello,2、DBD 3
2021-01-13 21:19:34 1007
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人