自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 QT Creator从源码编译(MinGW64)和使用VTK 9.3.0

非常详细的QT Creator从源码编译和使用VTK 9.3.0,仅限MinGW64.

2024-06-05 22:25:17 879

原创 QT读取和转存xlsx文件

通过上述分析,我们需要解析的文件只有workbook.xml和sheet.xml。分别是WorkBook和SheetMapper,此外,我们还需一个类(XlsxHandler)来完成解压文件,并执行文件操作。workbook保存sheet名的映射关系,sheets则保存每个Sheet的值。其中,workbook.xml保存了xlsx的sheet外部和内部名称的映射关系。sheet.xml则保存着对应Sheet的数据。通过将二者对应,便于程序通过xlsx视图中的文件名到压缩包中寻找对应sheet.xml。

2024-05-16 14:20:44 405

原创 单例导致 RTTI symbol not found for class ‘QObject‘

使用QQmlEngine::setObjectOwnership(&instance, QQmlEngine::CppOwnership)将所有权保留给c++即可。Qt Quick使用qmlRegisterSingletonType注册单例,使用Qt.quit等退出程序时,出现崩溃。调试会输出 RTTI symbol not found for class 'QObject'

2024-04-10 16:59:42 363

原创 c++ Socket(windows) 笔记

在服务器上接收和发送数据send()/recv()在客户端上发送和接收数据send()/recv()断开客户端的连接closesocket()断开服务器连接closesocket()为客户端创建套接字 socket()为服务器创建套接字socket()连接到套接字 connect ()侦听套接字listen()接受连接accept()绑定套接字bind()

2023-10-07 14:44:15 130

原创 二叉树的四种遍历方式(递归or非递归/C++)

二叉树的遍历可以分为先序、中序、后序和按层遍历。前三者可以用递归的方式实现,也可以借助栈非递归地遍历。按曾遍历则是借助队列来实现。递归版非常简单,这里只介绍非递归版,该方式均在循环中完成。先序遍历:如果当前节点不为空,输出当前节点的值。如果其左节点不为空,则将当前节点入栈,再移动到其左节点;如果左节点为空,从栈中取出一个节点作为当前节点(栈空则结束循环),再移动到其右节点。中序遍历:当前节点的左节点非空,则当前节点入栈,否则输出当前节点的值(左节点为空,当前节点就是中间节点。

2023-09-09 16:42:49 134

原创 递归最小边界矩形算法

定义一个空的边列表edgeList,遍历mbrList,取出每个MBR,对每个MBR的四条边进行多边形的拓扑运算,将得到的边存入edgeList。如果点云满足最小建筑物(长和宽不要过小)的条件,计算每个点云的MBR,以及点云端点在curMBR上的投影点,用投影方向校正算法计算得到正确的MBR。将点云放入epList,把修正后的MBR存入mbrList,把返回的索引存入索引队列。根据阈值,计算点云与curMBR的重叠点和非重叠点,将点云划分为多个次级点云,用一个新的端点列表childList存放。

2023-07-26 18:21:52 874

原创 VS点云可视化程序

程序需要在VS2022上配置QT环境和PCL库,详细配置如下:pcl 1.12.1QT 6.4VS+QT+PCL配置教程。

2023-07-13 12:16:43 161

原创 迷宫寻路-Easyx演示

从入口开始,检测当前位置的四个方向是否存在可行的位置P,将P放入队列中,将当前位置存储的距离加1后,替换位置P的值。接着从队列中取出下一位置。重复同样的操作,直到下一个位置是出口即可停止。它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求找出从左上角到右下角的路线。入口点为[0,0],既第一格是可以走的路。寻找最短路径则比较简单,经过的位置都存储了距离入口的距离,从出口的距离逆向寻找。最短路径可能不止一条。

2023-07-05 17:54:57 178

原创 PCL可视化刷新等问题(VS+QT)

setBackgroundColor接收的参数范围为0.0~1.0,如果是0~255需要做转换。使用该方法后无法用2的办法更该颜色,做法是在更在的地方移除点云重新重新添加。以上是个人使用的一些知识总结,希望能帮助各位同学,如有错误,还望指正。两种方式都能更新点云窗口,但是实际用下来,第二种效果会更好。针对PCL刷新问题,我用过两种方式。这里我们需要 头文件。

2023-05-02 00:59:30 893

原创 使用vector的误区.size()

上面代码是为了计算一个点集相邻两点的距离。这段代码在数组points不为空时能正常工作,然而当数组为空时,代码将会崩溃。我长期以为程序会因为i=0,points.size()-1=-1,i<points.size()-1为false,而终止下去;然而事实出乎我的意料,记录一下自己踩坑。因此,如果在使用size()-1时,没有通过索引访问数组,程序将循环很多次;反之,程序会因为访问了范围外的值而崩溃;因为size()函数返回的是无符号整数,当数组为空(即points.size()=0)这时候再减1将会溢出。

2023-04-21 18:47:09 125

原创 点云delaunay三角化PCL and C++

算法改编自一个JS程序。好像是github上的项目,但是时间比较长,不记得是哪个了。最终结果和源程序基本一样。因为是出于兴趣写的,没有很严谨,无法保证算法的百分百正确。本文使用了PCL点云库来作可视化。感兴趣的可以将源码进行规范和优化。

2023-04-14 17:01:44 372

原创 基于PCL和C++实现偏度平衡滤波(SKF)算法

原文:偏度平衡滤波SKF (Skewness balancing filtering)算法假定Lidar点云中自然地面点的高程概率密度分布服从正态分布,非地面点会使得Lidar点云中点的高程概率密度分布偏离正态分布,呈现出偏态分布,偏度表示偏离正态分布的程度。每次校正,高程最高的点被标记为非地面点剔除,迭代进行,直至偏度约等于0,剩余的点即为地面点。程序结束时,in_cloud为地面点云结果,out_cloud为(非地面点云)建筑物点云结果。实现算法得到效果如下,第一图是原始点云,图二是分离的建筑物点云。

2022-11-25 22:22:40 798 1

原创 PCL建筑物点云最小外接矩形实现C++

参考https://blog.csdn.net/Fan_z_0802/article/details/80960790原理很简单,先计算出目标的中心,将目标绕中心旋转一定角度alpha。求出点云的最值Xmax,Xmin,Ymax,Ymin。这四个值两两组合就能组成外接矩形的四个顶点。记录矩形面积最小时的最值和角度。以上步骤得到的矩形的边分别平行于X轴和Y轴,通过对矩形的四个点逆旋转alpha。就能得到任意角度的外接矩形。我们选择旋转目标,而不是外接矩形,这样会更容易理解。 具体实现

2022-11-17 20:47:24 2378 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 5988 29

原创 JS四大行星

canvas的translate方法是将坐标原点移动至目标位置rotate方法是旋转坐标原点一定角度。save保存当前状态restore恢复保存的状态

2022-10-09 17:47:12 63

原创 C++棋盘覆盖

下边是一个4X4的棋盘,红色为特殊棋盘。要使用分治算法,据需要把四个区(0,1,2,3)转化为含有特殊棋盘的区域。以棋盘中心为中点,将四周的四个棋盘覆盖,如果该区域和红色目标棋盘在同一个区域,将其去掉(因为已经有红色区域了)。考虑四个特殊棋盘中存在的原始特殊棋盘(dr,dc),在哪个区就将int dr, int dc所代表的坐标替换为。如果不考虑特殊期盼的位置,即划分的四个特殊棋盘在四个中心,可以用以下代码分别处理四个区。指的是特殊棋盘在区域3,该区域的特殊棋盘坐标就为(dr,dc)。

2022-09-09 22:31:10 1641

原创 JS前端迷宫生成+寻路

JS前端迷宫生成+寻路

2022-05-08 19:37:22 512

原创 JS前端迷宫生成

迷宫,js,vue

2022-05-04 02:30:49 448

原创 利用C++库的优先队列实现哈夫曼编码

#include<iostream>#include<fstream>#include<string>#include<vector>#include<queue>#include <functional>#include<chrono>using namespace std;using namespace chrono;struct binaChar { char value; int .

2021-11-20 19:12:19 479

原创 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 181

原创 哈夫曼编码及文件操作

#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 540

原创 c#实现鼠标长按和单击混用Unity 2D

private bool continueMouse=false;声明布尔变量用于是否处于长按状态 //以下代码放于Update(),FixedUpdate()重复调用的函数中if (Input.GetMouseButtonUp(0)) continueMouse = false; if (Input.GetMouseButtonDown(0)) continueMouse = true; if (co...

2021-07-22 01:50:00 381

xlsxhandler

xlsxhandler

2024-05-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除