自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jared_Chen的博客

时光静好,岁月安然

  • 博客(72)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 PCL中的半径离群点去噪-RadiusOutlierRemoval

该滤波器会计算每个点周围一定半径内点的密度,并将密度低于一个阈值的点移除。template <typename PointT> voidpcl::RadiusOutlierRemoval<PointT>::applyFilterIndices (std::vector<int> &indices){ //首先检查search_radius_是否为0,如果是,则输出错误信息,并清空indices和removed_indices_,然后返回。 if

2023-11-16 11:24:09 196

原创 PCL中的统计学滤波离群点去噪-StatisticalOutlierRemoval

统计滤波器的主要思想是假设点云中所有的点与其最近的k个邻居点的平均距离满足高斯分布,那么,根据均值和方差可确定一个距离阈值,当某个点与其最近k个点的平均距离大于这个阈值时,判定该点为离群点并去除。统计滤波器的实现原理如下:首先,遍历点云,计算每个点与其最近的k个邻居点之间的平均距离;其次,计算所有平均距离的均值μ与标准差σ,则距离阈值dmax可表示为dmax=μ+α×σ,α是一个常数,可称为比例系数,它取决于邻居点的数目;最后,再次遍历点云,剔除与k个邻居点的平均距离大于dmax的点。

2023-11-14 18:01:18 440

原创 PCL之GridMinimum求栅格最低点

【代码】PCL之GridMinimum求栅格最低点。

2023-10-17 16:16:50 125

原创 PCL中的FPS(最远点采样)源码

例如:继续选取点,分别计算剩余各点到P0,P1,P2的距离,并选取最短的那个距离作为某点到P1,P2,P3整体的距离,然后选取这些点中距离最大的那个点,记为P3。另一种规范的做法是:求整个数据点(点云)的重心(即所有点坐标求和平均得到的坐标点),选取距离重心最远的点,记为P0。4. 对于剩下的每个点,分别计算到P0和P1的距离,并选取最短的那个作为这个点到P0,P1整体的距离。计算这些距离后选择距离最大的那个点,记为P2。3. 然后,我们继续选取剩余的所有点中距离P0最远的点,记为P1。

2023-08-31 15:30:10 241

原创 PCL中的ISS特征点检测

ISS是基于内部形态描述子(ISS) 的特征点。

2023-08-23 11:25:13 243

原创 PCL计算均值和协方差矩阵computeMeanAndCovarianceMatrix

如果点云是非稠密的,则将计算限制在具有有限值的点上,并更新点的数量。最后,累加器中的值除以点的数量,得到了各个坐标的平均值。其中,协方差矩阵是描述随机向量之间关系度量的矩阵,而中心点是点云的平均位置。该函数首先创建了一个大小为 9 的 Eigen::Matrix 对象 accu 作为累加器,并将其初始化为零矩阵。然后,对于点云中的每个点,该函数将点的 x、y、z 坐标及其平方项相应地添加到累加器中。此函数对于点云分析和计算对象的几何属性非常实用,例如计算点云的主要方向、法线和曲率等信息。

2023-06-13 15:03:10 516

原创 pcl中MomentOfInertiaEstimation计算有向包围盒

然后通过对二次型矩阵进行特征值分解,可以得到物体的惯性矩阵及其特征向量和特征值,从而计算出物体的三个主轴及其长度、长宽高、体积等信息。然后,将计算出的主轴、中轴和次轴组成旋转矩阵,并计算 OBB 盒的位置(即重心)和边界框大小。首先,通过遍历待计算的点云,计算每个点相对于主轴、中轴和次轴的投影,并更新 OBB 盒的最大、最小边界坐标。在点云处理中,矩特征分析是一个常用的工具,例如可以通过矩特征来计算物体的质心、面积、方向、形心、协方差矩阵等,从而实现物体分类、跟踪、位姿估计以及三维重建等应用。

2023-04-23 14:31:19 951 1

原创 PCL高斯混合聚类

GMM 聚类算法通过假设数据集中的每个簇都服从一个高斯分布来建模数据,并使用最大似然估计(Maximum Likelihood Estimation,MLE)方法估计 GMM 的参数。E 步骤通过使用贝叶斯定理计算每个数据点属于每个簇的概率,即计算每个簇的后验概率。在这个过程中,需要计算当前估计的 GMM 参数对应下,每个数据点属于每个簇的概率。M 步骤根据 E 步骤计算得到的后验概率以及每个簇的先验概率,在最大化似然函数的意义下更新 GMM 的参数,包括每个簇的均值、协方差矩阵和先验概率。

2023-04-21 09:44:20 533 5

原创 PCL点云压薄

在对地面点云或者墙壁进行分类后再压薄。

2023-02-28 15:04:48 316

原创 linux常见命令

linux常见命令

2022-10-21 08:42:42 196

原创 VS2019 QGIS3.24.2源码编译

【QGIS编译】

2022-06-29 09:35:48 329

原创 openv将raw格式的图像转成jpg

在工业相机采集数据时,应该会出现raw格式的图像。#include <iostream>#include <io.h>#include <chrono>int main(){ std::string filePath = "I:/bf/cn1"; std::vector<std::string> allFiles; getFiles(filePath, allFiles); auto aa = std::chrono::system_

2022-04-27 17:55:39 986

翻译 C++ 并行加速

1.OpenMP并行加速: 在MIMD作为主要研究对象的系统中,分为两种类型:共享内存系统和分布式内存系统,之前我们介绍的基于MPI方式的并行计算编程是属于分布式内存系统的方式,现在我们研究一种基于OpenMP的共享内存系统的并行编程方法。VS配置进行OpenMP开发的步骤:(1)在正式进行OpenMP编码之前,需要对编译器稍微配置一下。启动VS2015新建一个C++的控制台应用程序;(2)然后在项目解决方案资源管理器上选择项目名称,点击右键,选择“属性”;(3)然后在属性页...

2022-04-16 09:32:13 1989

原创 CMake学习

1.CMake变量的使用2.变量的定义和引用使用 ${} 进行变量的引用。在 IF 等语句中,是直接使用变量名而不通过 ${} 取值; 环境变量: 使用 $ENV{NAME} 指令就可以调用系统的环境变量了; 设置环境变量的方式是:SET(ENV{变量名} 值)。 ...

2022-03-12 09:29:22 850

原创 Opencv照片合成视频

void getFiles(const string& rootPath, vector<string> &paths, vector<string> &filePaths){ namespace fs = boost::filesystem; fs::path fullpath(rootPath); fs::recursive_directory_iterator end_iter; for (fs::recursive_directory_...

2022-02-28 15:46:16 2075

原创 GIS基础知识记录

一、坐标系代码1.1 EPSG:4326 (WGS84)前面说了 WGS84 是目前最流行的地理坐标系统。在国际上,每个坐标系统都会被分配一个EPSG代码,EPSG:4326 就是 WGS84 的代码。GPS是基于WGS84的,所以通常我们得到的坐标数据都是WGS84的。一般我们在存储数据时,仍然按WGS84存储。原点:地球质心。 Z轴:BIH(1984.0)定义的地极(CTP)方向,即国际协议原点CIO,它由IAU和IUGG共同推荐。 X轴:指向BIH定义的零度(本初)...

2021-11-13 14:25:09 2510

原创 Unix时间转周秒时间

double preTime = dUnix_time / 1000000;int nTime = floor(preTime);double dTime = preTime - nTime; //得到毫秒QDateTime datetime = QDateTime::fromTime_t(nTime);//或者使用QDateTime::fromTime_t(nTime).toUTC()转换为UTC的时间QDate date = datetime.date();int dayofweek .

2021-11-13 10:04:05 840

原创 应用程序无法启动,因为应用程序的并行配置不正确

在软件安装的过程中会出现如下的问题:我们,可以右键此电脑-管理,打开计算机管理器,查看日志,可以看到软件运行缺少的环境。

2021-09-07 15:41:23 4783 1

原创 VS调试时不显示变量的值

(1)不显示Qt中类型的值,如下图所示:原因:没有安装VS的Qt插件:qt-vsaddin。(2)不显示C++中的变量,如下图所示:在工具-选项-调试-常规中取消在变量窗口中显示对象的原始结构前面的√...

2021-08-12 17:39:56 12435 1

翻译 点云E57格式

E57格式是由ASTM制定的3D图像数据文件格式标准,它是一种交换数据的格式,它汇集了点云和图像,使二者相连接。它可以储存(1)3D点数据;(2)属性,比如:色彩或亮度;(3)影像,如:数字化图片。E57的文件格式设计:...

2021-08-08 16:49:29 3685 1

翻译 Anaconda和labelme安装的注意事项

(1)

2021-05-22 17:33:45 114

原创 C++学习记录

记录C++中的一些知识。#pragma pack (push,n) // 把原来对齐方式设置压栈,并设新的对齐方式为n个字节对齐#pragma pack(pop) // 恢复原来对齐方式 从上面两点来看#pragma pack(n)与#pragma pack (push,n)来看,他们之间的区别并不大,可以相互代替,只是后者恢复时是恢复到了原来的对齐方式,而前者是恢复到了编译器默认的对齐方式。推荐...

2021-04-23 22:27:23 304

原创 Qt翻译中lconvert.exe的使用

(1)当我们的ts文件损坏或者丢失时,可以根据qm文件反生成ts文件,使用如下的命令:lconvert compiled.qm -o source.ts (2)将多个ts文件合并输出lconvert -i primary.ts secondary.ts -o complete.ts

2021-04-23 21:31:55 870

原创 opencv读取视频文件解析为照片

缺少处理视频文件需要的dll,把opencv文件夹中的 \3rdparty\ffmpeg里的opecv_ffmpeg.dll文件复制到bin目录下。

2020-12-16 17:48:38 631

原创 PDAL中filters.divider过滤器对大点云文件进行分割

//pdal库将las文件分割为多个文件void dividerLAS(){ using namespace pdal; using namespace pdal::Dimension; std::string in_filename = "F:\\pointCloud_data\\zhangjiang8\\pointcloud\\181013_030701-11-16-47-028.las";//中文路径可能报错 std::string fileName = "d:/out_#.la...

2020-11-19 14:34:29 540

原创 PDAL库读写多种格式的点云

// PDALTest.cpp : 定义控制台应用程序的入口点。//#pragma execution_character_set("utf-8") //解决中文#include "stdafx.h"#include <iostream>#include <memory>#include <pdal/PointTable.hpp>#include <pdal/PointView.hpp>#include <pdal/Opt...

2020-11-18 18:04:19 2553 1

原创 VS如何新建RelWithDebInfo模式

从这个模式的名称来看,它是一种含有调试信息的Release版本。那么它相当于是结合了Debug和Release版本的优点的一个版本。在C/C++的优化中【禁用优化】

2020-11-12 15:40:21 1210

原创 视觉SLAM十四讲(二)Eigen库

Eigen库是一个C++的开源线性代数库。它是一个纯头文件搭建起来的库,不需要链接库文件。Eigen库中所有的向量和矩阵都是Eigen::Matrix,它是一个模板类,它的前三个参数为数据类型、行、列。如果不确定矩阵的大小,可以使用动态大小的矩阵:Matrix<double,Dynamic,Dynamic> matrix_dynamic;随机数矩阵:Matrix3d::Random();转置:matrix_33.transpose();各元素之和:matrix_33.sum(

2020-10-01 10:56:17 1126

原创 视觉SLAM十四讲(一)基础知识

SLAM是Simultaneous Localization and Mapping的缩写,中文“同时定位于地图构建”。双目SLAM的距离估计是比较左右眼的图像获得的,非常消耗计算资源,需要使用GPU和FPGA设备加速。所以计算量是双目的主要问题之一。基线:两个相机之间的距离,基线越大,能够测量到的物体越远。回环检测:又称闭环检测,主要解决位置估计随时间漂移的问题,需要让机器人具有识别到过的场景的能力。刚体运动:两个坐标系之间的运动由一个旋转加上一个平移组成。比如相机的运动,同一个向量在各个坐标

2020-10-01 09:56:52 2154 1

原创 CloudCompare分离点云地面点和非地面点

在点云的处理中,需要分离地面点和非地面点。使用CloudCompare可以完成。先加载一份点云数据,点击插件中的CSF Filter功能,弹出如下图所示的对话框:其中,“Steep slope”是陡坡;“Relief”是缓坡;“Flat”是平地,根据自己的点云情况选择对应的参数。点击ok。最后得到的地面点云如下图所示:...

2020-07-27 19:13:12 9725 3

原创 LASlib库将PCL库点云类型数据转换为las格式保存

pcl是一个命名空间,跟std类似,PointCloud是类模板,<pcl::PointXYZ>是模板类实例化的类型。 在使用pcl::PointCloud<pcl::PointXYZI>::Ptr时需要使用new进行初始化,如下:pcl::PointCloud<pcl::PointXYZI>::Ptr cloudxyzi(new pcl::PointCloud<pcl::PointXYZI>); 在使用...

2020-06-16 21:02:38 3711 3

原创 使用GDAL库读写SHP文件

本文介绍如何读写shp文件的矢量线。在项目中,我们经常需要提取一些道路标线等对象保存为shp文件。本文使用到了Eigen库,需要的同学自己下载使用。以下读取shp文件的函数暂不支持中文路径。(1)读取矢量线shp文件:bool readPolylineShp(const std::string &filename, std::vector<std::vector<Eigen::Vector3f>> &pts) { // if this...

2020-05-13 13:57:19 6739

原创 Boost库实现文件夹下所有pcd文件名称的提取

下面的代码使用Boost库实现文件夹下所有pcd文件名称的提取,首先创建两个向量pcd_files_和pcd_paths用于存储文件夹下的点云序列和路径的序列。 boost::filesystem::is_directory:用于判断传入的参数dir_是否为目录。 boost::filesystem::directory_iterator:结合for循...

2020-05-07 12:49:25 375

原创 使用LASlib(LASTool)库对LAS文件进行分割

在实际的项目,有很多时候,我们会遇到一个巨大的las文件,比如7,8个G的大小。这时候,我们需要对这个大的las文件进行分块保存为多个小的las文件。可是按照点的个数进行保存,也可以按照内存的大小保存。实际上也就是对点云的读写过程。具体的代码如下所示:void lasFileDivision(){ LASreadOpener lasreadopener; LASwrite...

2020-04-22 22:05:00 2933 1

原创 VS2017+win10编译LASlib(LASTools)库

LASlib是进行点云数据读写的理想工具,由北卡计算机学院的Martine isenburg编写。基于该开源库,作者同时开发了LASTool,包含了一系列点云数据处理的工具。LASlib提供了LAS格式的LiDAR点云数据的高效读写接口。因此,对于一些常用的LAS格式的数据操作,LASlib的开源、高效等特性,无疑使其成为一个重要的开发库。源代码下载地址:http://www.c...

2020-04-14 09:55:46 3043 3

原创 libLAS库实现las文件的读写

尽管libLAS库已经没有维护了。但是还是有些同学在以前的项目中需要用到libLAS库。下面就简单的用代码展示如何使用libLAS库来读写las点云数据。(1)读las文件点云数据(这个比较简单,网上有大量的例子):std::ifstream ifs;ifs.open("C:\\Users\\51267\\Desktop\\podtest\\181013_030701-1...

2020-04-13 11:40:11 4135 1

原创 点云库PCL从入门到精通常见的编译错误

(1)error c4996: 'fopen': This function or variable may be unsafe 解决方法:项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加:_CRT_SECURE_NO_DEPRECATE。 参考博文:https://blog.csdn.net/wang...

2020-04-07 12:04:09 5012 2

原创 CloudCompare如何将多个pcd格式点云合并转换为单个las格式点云输出?

在实际项目过程中,我们会有将多个文件合并为一个点云文件的需要,而CloudCompare很好的满足了我们需求,而且该软件是开源的。下面详细介绍如何将多个pcd点云合并为一个las文件。首先,选中所有的pcd点云文件,选中菜单栏中的【Edit】->Merge,就会弹出如下的对话框,选择yes。合并为一个pcd后,然后点击保存,选择las格式,给文件命名,接着会弹出下面...

2020-03-25 20:31:46 10264

原创 MicroStation问题汇总

(1)bmake问题:解答:使用bmake命令编译一个项目时,默认会寻找与最后一级文件夹同名的一个文件(扩展名为.mke),比如,你当前目录是D:\MDLSource\database,则bmake会在该目录下尝试寻找database.mke文件,找不到的话就是出现你遇到的提示。如果你的mke文件和最后一级目录名不相同,可以在bmake后带上这个mke文件名。如: bmake -a -...

2020-03-12 20:00:56 2811 1

原创 OSG自定义操作器实现全景图像的缩放

我们在使用OSG编程时,经常会自定义操作器实现自己想要的操作功能。我在实现二维图像转换为360度全景图像的过程中发现OSG自带的一些操作器都没有自己想要的旋转和缩放操作,所以只能自己定义操作器。参考了网上有的一些代码,再结合自己的实际情况修改之后实现的。参考代码的网址:https://blog.csdn.net/mj511099781/article/details/46051453...

2020-02-12 11:10:15 1873

PDAL点云库官方文档

该文档是直接从PDAL官网上下载下来的。包括了PDAL库的相关介绍、代码例子等,可以快速的入门pdal库。

2020-11-19

LASlib(LASTools)读写las文件.txt

资源中主要使用LASTools(LASlib)对las文件进行读取和写入,亲测可用,欢迎下载测试。LASlib(LASTools)库的配置和编译可以查看博文:https://blog.csdn.net/jacken123456/article/details/105504709

2020-04-14

通过在Qt中调用cmd命令来执行sql数据库备份

该例子通过在Qt调用CMD命令来执行数据备份,亲测有效(仅在mysql中测试过)。https://blog.csdn.net/jacken123456/article/details/87971401

2019-02-27

C++实现贝叶斯分类器(包含测试数据)

代码用VS2010实现,有测试数据男性:MALE.txt;女性:FEMALE.txt;待测试数据:test2.txt;结果保存在result.txt中。 将人的身高(height)和体重(weight)作为分类特征,分为两组类别,男性(male)和女性(female)。现有一组男性的身高和体重的数据和女性的身高体重数据作为训练数据集训练出一个贝叶斯分类器。男性的数据保存在MALE.TXT,每行两个数x1,x2分别表示身高和体重。女性的数据类似。假设二者相关。

2018-08-03

人脸检测与跟踪

Matlab编写的实时检测单人脸和多人脸,压缩包内有GUI界面和检测用的视频。

2018-05-27

DirectShow实现视频的实时显示并抓图,可以设置视频参数

使用VS2013创建的工程,使用前需要安装并配置DirectShow环境。DirectShow实现视频的实时显示并抓图保存到本地。可以设置图像参数和视频格式。

2018-05-26

modbus协议中文版

MODBUS协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。Modbus 协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

2018-05-23

C#char图表-从SQLite中读取数据显示在dataGridView报表中并用char图表饼状图,柱状图,折线图等显示出来

压缩包内的源码是用VS2010写的,创建的是C# winform工程。从SQLite中读取数据显示在界面的dataGridView控件报表中并在右边用char图表绘制饼状图,柱状图,折线图等。

2018-05-23

水果识别以及成熟度的判定

包含两个Matlab的GUI程序,分别用来判定水果的类型以及水果的成熟度判定

2018-05-13

CommLib 一个封装完美的串口库,异步IO驱动

C++,串口通信,DLL,异步IO,可以自动识别需要串口号(不用手动点击打开串口),用于设备的自动识别中。

2018-05-11

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

TA关注的人

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