
c++
文章平均质量分 63
石悼花
这个作者很懒,什么都没留下…
展开
-
Visual Studio 2022+CMake配置PCL1.14.1(新增QT教程)
本教程只是提供高效的PCL配置流程,不提供Qt环境配置,如果需要GUI界面,则需要自寻查找Cmake配置QT的教程。请相信,在CMake之下没有任何事是困难的,最困难的工作已经由前辈们完成。因此,对于C++用户来说学习CMake是极其重要的。原创 2024-12-13 23:50:08 · 1313 阅读 · 0 评论 -
VTK平面多边形的绘制(包括环形)
按照下图,将点序0132,2354,4576,6710存入,就能得到圆环。当然了,为了接近于圆形,需要更多的点。我们将代码稍加修改,使得代码能输出三角环,四角环,N环,乃至圆环,也就是vtkDiskSource的基本原理了。代码如下,numCells为胞元的数量,顶点数量为胞元的两倍。vtkPoints可以视为多边形的顶点,而vtkCellArray存储vtkPoints的id(索引),同时也决定着细分多边形的胞元形状。需要注意的是,如果按照0123,4567的存储方式只能得到矩形,而非中空的效果。原创 2024-09-09 18:02:21 · 820 阅读 · 0 评论 -
基于PCL和C++实现偏度平衡滤波(SKF)算法
原文:偏度平衡滤波SKF (Skewness balancing filtering)算法假定Lidar点云中自然地面点的高程概率密度分布服从正态分布,非地面点会使得Lidar点云中点的高程概率密度分布偏离正态分布,呈现出偏态分布,偏度表示偏离正态分布的程度。每次校正,高程最高的点被标记为非地面点剔除,迭代进行,直至偏度约等于0,剩余的点即为地面点。程序结束时,in_cloud为地面点云结果,out_cloud为(非地面点云)建筑物点云结果。实现算法得到效果如下,第一图是原始点云,图二是分离的建筑物点云。原创 2022-11-25 22:22:40 · 888 阅读 · 1 评论 -
PCL建筑物点云最小外接矩形实现C++
参考https://blog.youkuaiyun.com/Fan_z_0802/article/details/80960790原理很简单,先计算出目标的中心,将目标绕中心旋转一定角度alpha。求出点云的最值Xmax,Xmin,Ymax,Ymin。这四个值两两组合就能组成外接矩形的四个顶点。记录矩形面积最小时的最值和角度。以上步骤得到的矩形的边分别平行于X轴和Y轴,通过对矩形的四个点逆旋转alpha。就能得到任意角度的外接矩形。我们选择旋转目标,而不是外接矩形,这样会更容易理解。 具体实现原创 2022-11-17 20:47:24 · 2700 阅读 · 20 评论 -
如何在VS2022(QT)或QTCreator上配置并显示PCL点云文件
PCL下载地址:https://github.com/PointCloudLibrary/pcl/releases下载这两个文件。选择第三个,如果安装失败就选第一个,没什么影响。勾选CreatePCL Desktop Tcon。安装目录自己选择即可。安装PCL和3rd。 安装完成,在安装目录下找到3rdParty\OpenNI2目录下的OpenNI-Windows-x64-2.2.msi,安装该程序,安装目录自己选择。解压pcl-1.12.1-pdb-msvc2019-win64.zip,将解压得到的文件原创 2022-11-04 19:57:35 · 9227 阅读 · 39 评论 -
C++棋盘覆盖
下边是一个4X4的棋盘,红色为特殊棋盘。要使用分治算法,据需要把四个区(0,1,2,3)转化为含有特殊棋盘的区域。以棋盘中心为中点,将四周的四个棋盘覆盖,如果该区域和红色目标棋盘在同一个区域,将其去掉(因为已经有红色区域了)。考虑四个特殊棋盘中存在的原始特殊棋盘(dr,dc),在哪个区就将int dr, int dc所代表的坐标替换为。如果不考虑特殊期盼的位置,即划分的四个特殊棋盘在四个中心,可以用以下代码分别处理四个区。指的是特殊棋盘在区域3,该区域的特殊棋盘坐标就为(dr,dc)。原创 2022-09-09 22:31:10 · 1830 阅读 · 0 评论 -
C++迷宫生成和BFS/DFS寻路
#include <iostream>#include<graphics.h>#include<vector>#include<stack>#include<queue>using namespace std;#define W 801#define S 801#define X 1struct point { int x, y;};void initMap(vector<vector<int>&g.原创 2021-10-30 19:28:28 · 237 阅读 · 0 评论 -
哈夫曼编码及文件操作
#include<iostream>#include<string>#include<vector>#include<fstream>using namespace std;//定义字符以及权值struct binaChar{ char value; int width;};//定义储存哈夫曼树节点struct node { char value; int width; struct node* rc.原创 2021-10-22 01:22:17 · 609 阅读 · 0 评论