- 博客(24)
- 资源 (33)
- 收藏
- 关注
原创 机器学习中的数学基础:(1)实际应用中矩阵特征值与特征向量的几何意义
关于特征值、特征向量的讲解有很多的教程,对于这些枯燥的数学基础怎么运用到自己的实际计算机视觉实验中,是一项很重要的任务。算法的底层其实就是数学公式的各种结合与推导,有时间不是我们不能很好的去理解这些算法基础,而是没有一个很好的教程带领我们这些小白去一步步的从底层学习。写博客的目的一方面就是记录自己的总结,另一方面就是用自己的大白话去描述这些专业的术语与思想,方便自己能看懂学习。(以上纯属个人观点)...
2020-03-30 08:51:22 4203
原创 PCL:点云中的超体素数据
-----------------------体素数据---------------------体素化网格体素(Voxel)是体积元素(Volume pixel)的简称,是数据位于三维空间内规则网格上的最小单位,体素,其物理意义类似于二维图像像素在三维空间上的推广,是一组均匀分布、位于正交网格中心的立方体的集合。体素不能表示三维空间中的位置信息,即不具有三维坐标。可以通过体素数据在立体空间内的...
2020-03-24 10:28:38 3794
原创 Pcl:Normal的定义结构及输出
1. pcl::Normal在pcl官网中的定义/*brief A point structure representing normal coordinates and the surface curvature estimate. (SSE friendly)ingroup common*/struct Normal : public _Normal{ inline Norm...
2020-03-17 15:02:42 3951 2
转载 PCL :K-d tree 2 结构理解
K-d tree 基础思路:(先看之前的KNN思想,更容易理解)导语:kd 树是一种二叉树数据结构,可以用来进行高效的 kNN 计算。kd 树算法偏于复杂,本篇将先介绍以二叉树的形式来记录和索引空间的思路,以便读者更轻松地理解 kd 树。kd 树(k-dimensional tree)是一个包含空间信息的二项树数据结构,它是用来计算 kNN 的一个非常常用的工具。如果特征的维度是 DDD,...
2020-03-16 21:08:41 311 2
转载 Python:KNN
KNN 理解:导语:商业哲学家 Jim Rohn 说过一句话,“你,就是你最常接触的五个人的平均。”那么,在分析一个人时,我们不妨观察和他最亲密的几个人。同理的,在判定一个未知事物时,可以观察离它最近的几个样本,这就是 kNN(k最近邻)的方法。以兔子为例,理解KNN思想:(kNN 可以用来进行分类或者回归,大致方法基本相同,本篇文章将主要介绍使用 kNN 进行分类。)有一种兔子叫作悲...
2020-03-16 20:26:12 260 1
转载 PCL:k-d tree 1 讲解
1.简介kd-tree简称k维树,是一种空间划分的数据结构。常被用于高维空间中的搜索,比如范围搜索和最近邻搜索。kd-tree是二进制空间划分树的一种特殊情况。(在激光雷达SLAM中,一般使用的是三维点云。所以,kd-tree的维度是3)由于三维点云的数目一般都比较大,所以,使用kd-tree来进行检索,可以减少很多的时间消耗,可以确保点云的关联点寻找和配准处于实时的状态。2.原理...
2020-03-16 17:33:36 794
转载 C++:while(getline())函数
首先说明getline()的原型:getline(istream &is,string &str,char delim)istream &is表示一个输入流,譬如cin,string表示把从输入流读入的字符串存放在这个字符串中(&str其实就是一个变量),char delim是终止符(默认为回车,还可以是别的符号,如#,*之类的都可以)对于while(getl...
2020-03-09 20:19:50 11799 2
原创 C++:文件操作2 文本文件和二进制文件的读写
文件读写的步骤:1、包含的头文件:#include <fstream>//使用文件流进行操作2、创建流3、打开文件(文件和流关联)4、读写 (写操作:<<,put( ),write( )读操作:>> , get( ),getline( ), read( ))5、关闭文件:把缓冲区数据完整地写入文件, 添加文件结束标志, 切断流对象和外部...
2020-03-09 20:05:56 775
原创 C++:字符串流
C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类型安全和可扩展性。(PS:自己解释的不知道准确不?)str()成员函数的使用可以让stringstream对象返回一个string字符串(例如本例中的输出操作(cout<<istr.str();)。c语言一般使用函数时候,最后,还有专门的代码去...
2020-03-09 15:33:22 533
转载 C++:析构函数
创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例如释放分配的内存、关闭打开的文件等,这个函数就是析构函数。析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析...
2020-03-09 14:20:23 242
原创 C++:流
流:不要把他理解的太复杂,就简单的理解为流水,从一个地方输送到另外一个地方。从数据层面理解:数据输入和输出的过程也是数据传输的过程。数据像水一样从一个地方流动到另一个地方,因此,在 C++ 中将此过程称为 “流(stream)”。比如c++中的输入输出流,就是cin,cout。分别用于从键盘输入数据和向屏幕输出数据(简称为标准 I/O)。除此之外,程序还可以从文件中读入数据,以及向文件中写入数...
2020-03-07 22:33:26 614 1
转载 c++:文件操作1 文件的打开
在程序中,要使用一个文件,先要打开文件后才能读写,读写完后要关闭。创建一个新文件也要先执行打开(open)操作,然后才能往文件中写入数据。C++ 文件流类有相应的成员函数来实现打开、读、写、关闭等文件操作。C++ 标准类库中有三个类可以用于文件操作,它们统称为文件流类。这三个类是:ifstream:用于从文件中读取数据。 ofstream:用于向文件中写人数据。 fstream:既可用...
2020-03-07 22:30:43 2623
转载 C++ 容器1 vector
容器分类:1.顺序容器有以下三种:可变长动态数组 vector、双端队列 deque、双向链表 list。它们之所以被称为顺序容器,是因为元素在容器中的位置同元素的值无关,即容器不是排序的。将元素插入容器时,指定在什么位置(尾部、头部或中间某处)插入,元素就会位于什么位置。2.关联容器有以下四种:set、multiset、map、multimap。关联容器内的元素是排序的。插入元素时,容...
2020-03-07 17:31:54 124
转载 C++:模板
模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型(这样可以避免受类型限制,可以为多种类型的变量参数,提供统一的函数模板等)...
2020-03-07 17:03:32 402
原创 C++ 随笔
一些小的知识点,看过了忘记,再看不用又是忘记,无奈只有自己敲一遍或许会记住吧...往前看,指日可待;往后看,风驰电掣;希望这是几年后回顾自己经历的岁月,我能对自己自豪的说出这句话。1.break 语句C++ 中 break 语句有以下两种用法:当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。 它可用于终止 switch 语句中的...
2020-03-07 15:23:36 149
转载 C++ 引用
参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。对于像 char、bool、int、float 等基本类型的数据,它们占用的内存往往只有几个字节,对它们进行内存拷贝非常快速。而数组、结构体、对象是一系列数据的集合,数据的数量没有限制,可能很少,也可能成千上万,对它们进行频繁的内存拷贝可能会消耗很多时间,拖慢程序的执行效率。在...
2020-03-06 22:33:15 200
转载 C++ 函数参数传递:传值,传指针,传引用
PS:首先理解形参 实参概念。形参是在函数定义的括号内定义的专用变量,它们的目的是保存按实参传递给它们的信息,实参被列在函数调用语句的括号内。int func(int x)//x是形参{ return x*x;}int main(void){ int a = 3; func(a);//a是实参 return 0;} 上面的代码中,x是形参,...
2020-03-06 15:20:31 2628
原创 PCL基础4:PCLVisualizer可视化窗口显示
1.单视口显示。//可视化结果pcl::visualization::CloudViewer viewer("边界提取");viewer.showCloud(cloud_out);while (!viewer.wasStopped()) { }所谓简单可视化类,是指直接在程序中使用,而且不支持多线程。必须包含的头文件 #include<pcl/visualiz...
2020-03-05 17:30:44 11644 3
原创 PCL基础2:点云赋值
1.用于交换两个点云 1.1 使用赋值号 =each_board_edge_pc_v[0] = each_board_edge_pc_v[1]; 1.2使用swap()函数each_board_edge_pc_v[0].swap(each_board_edge_pcl_v[1]);2.使用pcl::copyPointCloud() 2...
2020-03-04 09:50:34 4667
原创 PCL基础1:点云数据结构
1.数据结构PCL最基本的数据类型就是PointXYZ这个代表的是一个黑白的点,这个类包含了xyz的坐标,当然也有更高级的PointXYZRGB,这个里面不仅有坐标,还有点的RGB颜色值。具体如下:PointXYZI、PointXYZRGBA、PointXYZRGB、PointXY、InterestPoint、Normal、PointNormal、PointXYZRGBNormal...
2020-03-03 20:41:12 3109
原创 PCL基础3:点云程序运行时间计时
在学习PCL官网程序--条件欧几里得时,看到了计时器的用法,现做以总结:方法1:#include <pcl/console/time.h>pcl::console::TicToc tt;tt.tic ();//写入需要记录执行多长时间的代码(即需要计时的事件)std::cout << "[done, " << tt.toc () <...
2020-03-03 14:15:32 1061
原创 PCL:官方程序 Region growing segmentation
区域增长分割(算法不是很懂,有特别明白的可以给我讲讲疑问部分???)在本教程中,我们将学习如何将pcl:: regiongrow cla在用实现区域增长算法。该算法的目的是在平滑约束条件下,将足够接近的点进行归并。因此,该算法的输出是一组簇,每个簇是一组点,这些点被认为是同一光滑曲面的一部分。该算法的工作是基于各点法线夹角的比较。理论基础:让我们看看这个算法是如何工作的。首先,它根...
2020-03-03 12:07:15 356
原创 PCL分割:Conditional Euclidean Clustering官方历程,在自己配置环境上调错
本人环境:VS2015,PCL1.8.11.首先遇到遇到了“无法解析的外部符号”,提示和normal estimation等错误解决办法:打开项目属性页>C/C++>预处理器,添加:PCL_NO_PRECOMPILE2.errorC2079:“pcl::KdTreeFLANN<PointT>::param_radius_”使用未定义的struct“fl...
2020-03-03 10:56:30 597
原创 PCL:法线显示
#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL);#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/filters/statistical_outlier_removal.h>#inc...
2020-03-02 10:36:44 1497 1
自己实地项目,关于通信:与安川控制器P3000通信模块代码
2022-07-03
解析波士顿Handle机器人背后的技术 - 硬创公开课-超清720P(2893481).mp4
2021-09-06
PCL-Principal-Curvature-CAN-master.zip
2020-11-27
基于coco格式的MaskRCNN完整训练过程
2020-11-27
Curvature Estimation
2020-10-12
Point Feature Extraction on 3D Range Scans Taking into Account
2020-09-05
HOUGH_LINE.cpp
2020-06-29
Fast 3D Line Segment Detection From Unorganized Point Cloud.pdf
2020-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人