自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海贼王

博观约取,厚积薄发。

  • 博客(51)
  • 资源 (9)
  • 收藏
  • 关注

原创 怎么样递增的注册成对的点云

这次我们将使用Iterative Closest Point algorithm来递增的注册一系列的点云。这个主意来自于把所有的点云转换成第一个点云的框架,通过找到每个连续点云间最好的装换,并且计算整个点云的转换。你的数据集应该由重新排列的,在一个相同的框架里面重叠的点云构成。/* * Software License Agreement (BSD License) * *

2016-04-15 00:44:00 3969 1

原创 3D物体识别的假设检验

3D物体识别的假设验证这次目的在于解释如何做3D物体识别通过验证模型假设在聚类里面。在描述器匹配后,这次我们将运行某个相关组算法在PCL里面为了聚类点对点相关性的集合,决定假设物体在场景里面的实例。在这个假定里面,全局假设验证算法将被用来减少错误的数量。代码:在开始之前,你应该从Correspondence Grouping里面下载文件。下面是代码/* * Software

2016-04-14 23:29:37 12638 4

原创 隐式形状模型

在这次我们将学会隐式形状模型算法通过pcl::ism::ImplicitShapeModel这个类来实现。这个算法是把Hough转换和特征近似包进行结合。有训练集,这个算法将计算一个确定的模型用来预测一个物体的中心。这个算法由两部分组成,第一部分是训练,第二部分是物体识别。它有以下6步:1.先发现特征点。这只是一个训练点云的简化。在这个步骤里面所有的点云都将被简化,通过体元栅格这个途径。余

2016-04-14 18:05:56 5394 2

原创 以相关组为基础的3D物体识别

这次我们要解释如何以pcl_recognition模块来进行3D物体识别。特别地,它解释了怎么使用相关组算法为了聚类那些从3D描述器算法里面把当前的场景与模型进行匹配的相关点对点的匹配。(长难句)。对于每一次聚类,描绘了一个在场景中的可能模型实例,相关组算法也输出标识6DOF位姿估计的转换矩阵。代码#include #include #include #include #i

2016-04-13 23:19:24 20827

原创 从深度图里面导出边界

这次我们将学着怎么从一个深度图里面导出边界。我们对3种不同种类的点很感兴趣:物体的边框的点,阴影边框点,和面纱点(在障碍物边界和阴影边界),这是一个很典型的现象在通过雷达获取的3D深度。下面是代码/* \author Bastian Steder */#include #include #include #include #include #includ

2016-04-13 22:03:26 20339

原创 从一个点云里面创建一个深度图

这次,我们将显示如何从一个点云和一个给定的传感器来创造深度图。下面的代码,创建了一个在观察者前面的矩形。#include int main (int argc, char** argv) { pcl::PointCloudpcl::PointXYZ> pointCloud; // Generate the data for (float y=-0.5f; y0

2016-04-13 20:36:30 24739

原创 通过八叉树进行空间分割和搜索

一个octree是一个以树基础为的管理稀疏3-D数据的数据结构。每个中间的节点有8个子节点。在这次,我们将学习怎么使用octree进行稀疏分割和近邻搜索。尤其,我们将解释如何操作"体元近邻搜索",和"最近邻搜索"和"半径近邻搜索".我们将创建一个octree_search.cpp这个文件#include #include #include #include #include

2016-04-13 19:38:09 25948

原创 pcl里面使用KdTree来搜索

下面这个教程我们将学会怎么用KdTree找一个特殊点附近的K个最近邻,然后我们也将复习怎么通过一个特殊的半径来找里面所有的近邻。一个k-d树,或者k维的树是一个计算机科学里面的数据结构。它是一个有其它约束影响的二叉搜索树。K-d树是在深度和最近邻搜索里面很有用的。我们这次的目的是生成一个3维的k-d trees。一个k-d tree的每个层次在某个维度上分割成所有的子树,使用一个垂直于相应坐标

2016-04-12 17:00:29 28866 3

原创 点云文件的操作

读取点云文件#include #include #include intmain (int argc, char** argv){ pcl::PointCloudpcl::PointXYZ>::Ptr cloud (new pcl::PointCloudpcl::PointXYZ>); if (pcl::io::loadPCDFilepcl::PointXYZ> ("te

2016-04-12 16:23:59 10344

原创 pcl点云PCD文件

csdn离线状态下不能保存,白写了。然后我把官网链接发给你们,自己看吧,累觉不爱.....点击打开链接

2016-04-12 00:43:18 10529

原创 使用一个环境的或者半径异样消除器来进行异样消除

这个文档显示了在滤波模型里面如何使用几个不同的方法来消除点云里面的异常。第一步我们将使用一个环境消除滤波器来消除不满足环境条件的点云。然后我们将学会如何使用一个RadiusOutlierRemoval滤波器来消除在指定范围内没有达到指定数量邻居的点。代码 #include #include #include #include int main (int ar

2016-04-11 19:41:40 10226

原创 pcl从一个点云里面导出下标

我们这次将学着使用ExtractIndices滤波器来从一个分割算法中导出点的下标。为了不把这个项目复杂化,我们不会在这里解释分割算法。我们先建一个extract_indices.cpp代码#include #include #include #include #include #include #include #include #include

2016-04-11 19:03:06 11077

原创 用一个参数化的模型来投影点

这次我们将学着怎么通过一个参数化的模型进行投影。这个参数化的模型是通过一系列的系数---在这里是平面,相当于ax+by+cz+d=0下面是代码#include #include #include #include #include int main (int argc, char** argv){ pcl::PointCloudpcl::PointXY

2016-04-11 18:24:37 10871 1

原创 使用统计异常消除滤波器来消除异常

激光扫描可以生成很多点云的数据集。并且,测量误差会导致一些稀疏的异常值使得结果更差。这使得局部点云特征估计变得更加的复杂,产生一些错误的值,使得点云的识别失败。有些不规则的数据可以通过数理统计的方法来消除。我们稀疏异样消除是以计算输入集的点的近邻分布来进行的。我们假设分布是标准正太分布,所有在分布区间外的点都被当成异常点。下面的图展示了稀疏异常分析与消除,原来的数据集在左边,结果在右边。下面的图显

2016-04-10 23:12:14 11121 2

原创 用体元滤波器进行降低采样

我们这次用voxel filter(体元滤波器)来滤波#include #include #include #include intmain (int argc, char** argv){ pcl::PCLPointCloud2::Ptr cloud (new pcl::PCLPointCloud2 ()); pcl::PCLPointCloud2::Ptr cloud

2016-04-10 21:08:08 10040

原创 pcl使用通道滤波器来滤波

这次我们将展示一个简单的滤波的案例--把不符合的值去掉代码#include #include #include int main (int argc, char** argv){ pcl::PointCloudpcl::PointXYZ>::Ptr cloud (new pcl::PointCloudpcl::PointXYZ>); pcl::PointCloudpcl

2016-04-10 20:29:40 19759

原创 pcl里面的RoPs特征(Rotational Projection Statistics)

这次我们将使用pcl::ROPSEstimation这个类来导出点的特征。下面是这个方法的特征提取方式。有一个网格和一个点集可以让我们来执行一些简单的操作。第一步,对于一个给定的兴趣点局部的表面将会被削平。局部表面包含了在半径内的点和三角形。对于给定的局部表面LRF将被计算。LRF是向量的3个组之一。真正重要的是使用那些具有旋转不变的向量。为了做到这一点,我们把感兴趣的点作为原点来做转换,再这

2016-04-10 00:58:14 23202 7

原创 惯性矩和偏心距描述器

这次我们将学会怎么使用pcl::MomentOfInertiaEstimation 这个类来获取以惯性矩和偏心距为基础的描述器。这个类也能提取坐标对称和定向包围的方形盒子。但是记住导出的OBB不是最小可能性的盒子。下面介绍了该种方法的特征提取方式。第一次先算出点云矩阵的协方差,计算它的特征值和特征向量。然后把特征向量进行归一化处理,并把它组成右手坐标系。每一步都会迭代一次。每一次迭代特征向量都

2016-04-10 00:04:43 8801 1

原创 从一个深度图里面导出NARF特征

本节将显示如何提取出NARF关键点通过NARF描述器从一个深度图里面。

2016-04-09 20:34:26 7011

原创 点集的视点特征直方图的评估

VFH(Viewpoint Feature Histgram)视角特征直方图描述器,可以很直观的表现点的聚类在处理聚类识别与6DOF位姿估计。下面的图像展示了一个VFH识别和位姿估计的例子。给一些训练集,除了左下角的那个杯子,用来学习,用左下角的杯子作为检测。VFH源于FPFH描述器,因为它的速度与区别能力,我们决定利用FPFH的识别结果,但是在保持比例不变的情况下增加了一个视角变量。

2016-04-09 18:29:33 14091 1

原创 快速特征点直方图描述器(FPFH)

PFH的理论上的时间复杂度是O(nk的平方),n是点的数量,k是最近邻的个数。对于实时系统来说,这压根就是不行的,所以作为PFH规划的简化版本,FPFH把计算复杂度减少成O(nk),但是还具有很好的和PFH差不多的区分能力。第一步我们先计算了每个查询点Pq的一系列值,并把它叫做SPFH(Simplified Point Feature Histgram)第二步每个点的最近邻是重新分配,SP

2016-04-09 16:22:13 23460 6

原创 pcl里面的点特征直方图(PFH)

表面法线和曲率可以好的代表一个点的几何特征。然而它们算得很快,而且算法简单,但是它们不能捕获细节,它们只是点的近邻的几何特征的近似估计。作为一个直接的结论,大多数的场景往往会包括很多有着相似特征的点,这会减少它们所带来的消息量。这次我们将引进一个叫做PFH(point feature histgrams)的3D特征描述器,同时还将显示出它的一些理论优势,并讨论它的一些实现细节。PFH的目标

2016-04-09 12:22:59 20452 3

原创 pcl通过积分图来进行法线预测

首先,我们来看一下什么是积分图,我查了一下wiki,发现它的定义是这样的。A summed area table is a data structure and algorithm for quickly and efficiently generating the sum of values in a rectangular subset of a grid. In the image

2016-04-09 11:01:39 11436

原创 pcl里面的法线估计

法线估计是一个很重要的特征,常常在被使用在很多计算机视觉的应用里面,比如可以用来推出光源的位置,通过阴影与其他视觉影响。给一个几何表面,去推断给定点的法线方向,即垂直向量的方向往往是不容易的。然而,在我们获取物体表面的点云数据后,有两大选择:1.从已获取的点云数据集中得到潜在表面,并用表面网格化技术,来计算网格的表面法线。2.使用近似值来推断点云数据集的表面法线。尽管有很多法线估计

2016-04-08 21:48:29 23747 14

原创 pcl里面的3D特征

我这里不介绍pcl里面的类的命名规范,及点的类型。为什么呢?pcl里面类的命名规范,比较繁琐,而且主要是针对要对pcl这个库要开源的人士,而pcl里面的点的类型太多,足够满足你的要求。所以我们要走一条具有中国特色的pcl主义道路。今天来介绍一下pcl里面的3D特征。点是用来给一个给定区域来用笛卡尔坐标系x,y,z来进行描绘的一种方式。假定坐标系统的坐标原点没有变,可能会有两个点比如p1和p

2016-04-08 11:10:59 13765

转载 ros下qt creator环境搭建

原文链接

2016-04-07 11:33:29 905

原创 pcl的初步使用(ROS)

ROS里面已经预装好了pcl,和一些与pcl之间的转换,我们接下来看看如何在ros里面使用pcl

2016-04-04 17:29:32 30889

原创 PCL入门

pcl的入门本博客主要是对外文的翻译,及其他资料的一些整理。pcl 分割成好几个模块的库Filters(滤波器)Features(特征)Keypoints(关键点)Registration(注册)KdTree:k-dimension tree(k维的树)OcTree(八叉树)Segmetation(分割)Sample Consensus(采样一致)Sur

2016-04-04 15:59:23 16910 2

原创 C++文件操作与文件流

文件的概念1.1文件是程序设计中一个重要的概念,所谓“文件”,一般指存储在外部介质上数据的集合。1.2外存文件包括磁盘文件,光盘文件,和U盘文件。1.3对用户来说常用的文件类型有两大类,一类是程序文件,如C++的源程序文件(.cpp),目标文件(.obj),可执行文件(.exe)。一类是数据文件,程序里面常常需要把一些数据存放起来,这种磁盘文件就是数据文件。程序中的输入和输出对象就是数

2016-02-17 16:55:11 9474

原创 C++纯虚函数与抽象类

纯虚函数1.1纯虚函数是在声明虚函数时被“初始化”为0的函数。声明纯虚函数的一般形式为:virtual 函数类型 函数名 (参数列表) =0;如 virtual float area() const =0;1.2纯虚函数没有函数体,而且这是一个声明语句后面应有分号。1.3纯虚函数最后面的“=0”并不表示返回值为0,它只是起形式上的作用,告诉编译器这是纯虚函数。1.4纯虚函数

2016-02-16 22:46:30 9156

原创 C++虚析构函数

1.1为什么要用虚析构函数?用new函数建立了一个临时对象,在基类中有虚构函数,并定义了一个指向基类的指针变量。在程序中用带指针参数的delete运算符撤销对象时,会发生一个情况:系统只会执行基类的析构函数,而不执行派生类的析构函数。1.2当基类的析构函数声明为虚函数时,无论指针指向的是哪一个类族中的哪一个类对象,当对象撤销时,系统会采用动态关联,调用相应的析构函数,对该对象进行清理工作。

2016-02-16 22:32:15 8479

原创 C++静态关联与动态关联

1.1确认具体对象的过程叫关联(binding),在这里指把一个函数与类对象捆绑在一起,建立关联。1.2什么是静态关联?函数重载和通过对象名调用的虚函数,在编译时即可确定其调用的虚函数属于哪一个类,其过程称为静态关联,由于是在运行前关联的,所以又叫早期关联。1.3什么是动态关联?在运行时,基类指针变量指向了某个类对象,然后通过这个基类指针去调用虚函数。由于是在运行时把虚函数与对象“

2016-02-16 22:03:44 10891 1

原创 C++虚函数

1.1注意区分虚函数与虚基类,一个是为了实现动态多态性,一个是在继承间接共同基类时只保留一个成员来减少开销。1.2虚函数的作用是通过同一个调用形式来调用基类或者派生类中的同名函数。1.3虚函数的使用方法:A.在基类用virtual声明成员函数。这样就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便的被调用。在类外定义虚函数时,不必加virtual。B.在派生类中重新定义

2016-02-16 21:42:05 10690

原创 C++多态性

C++多态1.1多态性(polymorphism)是面向对象程序设计的一个重要特征。1.2从系统实现的角度看,多态性分两类:静态多态性与动态多态性。静态多态性是通过函数重载(运算符重载也是函数重载)来实现的。它又称为编译时多态。动态多样性是在程序运行过程中才动态确定操作所针对的对象。它又称为运行时多态,动态多态性是通过虚函数来实现的。1.3一段代码:#include

2016-02-16 21:26:25 10774

原创 C++虚基类

C++虚基类1.1虚基类的作用:如果一个派生类有多个直接基类,而且这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类的多份同名成员。所以为了解决这个问题,C++提供虚基类的方法,使得在继承间接共同基类时只保留一个成员。1.2虚基类并不是在声明基类时声明的,而是在声明派生类时,指定继承方式时声明的,因为一个基类可以在生成一个派生类时,作为虚基类,在生成另个派生类时,不

2016-02-16 12:35:42 10734

原创 C++多重继承

C++多重继承1.1一个派生类继承多个基类称为多重继承。1.2声明多重继承的方法。如果声明了类A,B,C,可以声明多重派生类D。class D:public A,private B,protected C{类D新增加的成员}1.2多重继承派生类的构造函数,如:派生类构造函数名(总参数表列):基类1构造函数(参数表列),基类2构造函数(参数表列),基类3构造函数(参数

2016-02-16 11:47:53 10558

原创 C++派生类的构造函数和析构函数

C++派生类的构造函数和析构函数派生类的构造函数和析构函数#include using namespace std;class student{public: student(int num,char* n):number(num),name(n){} ~student(){cout "student deconstruted" en

2016-02-16 08:42:05 5956

原创 C++三大继承与多级派生

C++公用继承1.1在定义一个派生类时把派生方式指定为public的,称为公用继承,派生类称为公用派生类,基类称为公用派生类。1.2关于公用继承的一段代码:#include using namespace std;class student{public: void display(); void setValue(int number,

2016-02-15 21:18:32 12934

原创 C++继承与派生

C++继承与派生1.1 C++中可重用机制是通过继承这一个机制来实现的。1.2在C++中所谓“继承”就是在一个已存在的类的基础上建立一个新的类,已存在的类(例如"马")称为“基类(base class)”或“父类(father class)”,新建立的类(例如“白马”)称为“派生类(derived class)”或“子类(son class)”.1.3一个新类从已有的类那里获得其已有的

2016-02-15 20:18:32 11375

原创 C++不同数据类型的转换

C++不同数据类型的转换C++标准类型数据的转换1.1隐式类型转换,如:int i=6;i=i+7.5;1.2显式类型转换,如:类型名(数据)如int(89.5)在C语言中(int)89.5建议用C++的方式。C++用转换构造函数进行类型转换1.1转换构造函数也是一种构造函数,它遵循构造函数的一般规则。通常把带有一个参数的构造函数称为转换

2016-02-15 17:10:49 11307

PCD点云文件

这是一个点云的PCD文件,十几兆的大小,描述了一个桌子。

2016-04-08

神经网络入门级ppt

第一次在部门讲解的神经网络算法ppt,用户可以下载进行可编辑整理。文中从生物上的神经元入手去层层迭代,先是简单的感知器,再到多层神经网络,最后演变为经典的神经网络CNN,通俗易懂。

2018-01-31

基于遗传算法优化的利用kmeans对数据集聚类数(优化K)

之前找了很多利用遗传算法优化聚类数K值的程序,结果网上一堆程序不能用,只能自己写一个了。 该程序是基于matlab编写的,调用了kmeans函数和遗传算法工具箱,这个函数主要部分是在定义遗传算法的适应度函数上,最后取整数就是K值了。 程序附带了自己定义的排序函数,该函数的作用是先对一个矩阵里A列进行排序,然后在根据排序结果对B列进行排序,这样得到的最后结果是A\B列都排序的矩阵。

2018-09-06

商城小程序

简单上手的商城小程序,用户下载后根据说明进行使用。

2018-08-09

台大&斯坦福大学机器学习笔记

这是我在听台湾的机器学习课程和斯坦福机器学习课程汇总的机器学习的知识点。课程由浅到深,通俗易懂,缩略了看视频要用的时间。课程讲解到的都是机器学习的基础算法,对要初探人工智能算法领域的小伙伴有一定的帮助。

2018-01-31

微信小程序开发工具

微信小程序开发工具,用户下载后解压然后点击相应的exe文件进行安装即可。

2018-08-10

lingo12破解

为了方便大家数学建模,我特意把lingo这个软件共享出来!

2017-01-17

仿OfO小程序

用户下载后在微信开发工具上导入,该项目主要包含地图定位和支付等功能。

2018-08-09

空空如也

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

TA关注的人

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