自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PengPengBlog的博客

point cloud processing lidar computer graphs surveying and mapping

  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

转载 STL容器vector的内存问题

在STL的容器中,vector可以说是最容易理解和使用的容器了,以前使用数组的时候,如果不确定有多少数据要存储,就会预先分配一个大的数组,如果实际没有用到那么多,又会浪费很多的内存资源,如果不分配大的数组又担心不够用,有了vector之后,这些问题再也不用担心了,vector会动态的增长空间,当vector空间不足时会自动申请一片更大的内存空间,以存储新的数据。       vector动态内

2016-09-30 22:13:37 583

转载 如何拿vector生成二维数组三维数组

#includeusing namespace std;/*#define HEIGHT 5#define WIDTH 3int main(){vector> array2D;//设置容器大小(HEIGHT / WIDTH)//连行都要resize;array2D.resize(HEIGHT);//原来需要每一行都要设置一下大小。for (int i

2016-09-29 20:38:43 3861

转载 叉乘

两个向量a和b的叉积写作a×b(有时也被写成a∧b, 避免和字母x混淆)。向量积可以被定义为:|向量a×向量b|=|a||b|sinθ在这里θ表示两向量之间的夹角(共起点的前提下)(0° ≤ θ ≤ 180°),它位于这两个矢量所定义的平面上。这个定义有一个问题,就是同时有两个单位向量都垂直于积:若满足垂直的条件,那么也满足。一个简单的确定满足“右手定则”的结果

2016-09-23 10:29:49 4778

转载 左手坐标系和右手坐标系(以及右手定则左手定则)

1.、空间直角坐标系  下面摘录一段百科的解析,这些都是数学基础。过空间定点O作三条互相垂直的数轴,它们都以O为原点,具有相同的单位长度.这三条数轴分别称为X轴(横轴).Y轴(纵轴).Z轴(竖轴),统称为坐标轴。  各轴之间的顺序要求符合右手法则,即以右手握住Z轴,让右手的四指从X轴的正向以90度的直角转向Y轴的正向,这时大拇指所指的方向就是Z轴的正向.这样的三个坐标轴构成的坐标系称为

2016-09-23 10:07:26 55829

原创 关于链表以及结构体指针别名的思考

/*#include "malloc.h" #include "stdio.h" typedef int DataType; typedef struct Node { DataType data; struct Node *next; }LNode,*PNode,*LinkList;

2016-09-21 15:31:00 935

转载 受教了

请牢记:源代码本身的书写是否结构化或面向对象或符合设计模式或敏捷…并不重要,重要的是你是否使用结构化或面向对象或符合设计模式或敏捷…的方法命名标识符、阅读、修改、检查、测试源代码。意思是你程序结构看上去再合理,再简洁,也不一定比看上去一团乱麻的程序结构在运行或修改时更不易出错,更方便修改,出错了更容易找到哪里出错和具体出错的原因,更容易改正错误。试对比图书馆(对图书的分类够结构

2016-09-21 15:08:08 464

转载 结构体struct和typedef后面接指针的含义

在C语言里面,struct是用来定义新的数据类型——结构体,typedef是给数据类型取别名。据说这两个关键词同时使用有助于减少代码量和增加代码的可读性(不过我认为它当typedef和struct在一起的时候反而降低了代码的可读性),很多时候为了方便,我们常常讲stuct与typedef放在一起用。像这样的代码是比较好理解的,就是取FileInfo为sturct file的别名嘛。

2016-09-20 20:48:30 15149 15

转载 关于指针的三个容易弄混淆的概念及发散~~~

于指针来讲,有3个比较容易混淆的概念:指针地址指针保存的地址指针所保存的地址的值在这里,我们分别来看看他们的定义:指针地址:指针自身的地址,即内存中用于存放指针变量的内存地址指针保存的地址:指针所保存的变量在内存中的地址,通俗讲就是指针所指向的对象的内存地址指针所保存的地址的值:指针所指对象的数值。下面,我们用一个具体的例子来看看上面仨个东东的不同~~~

2016-09-20 16:11:59 603

原创 c语言中realloc()函数解析

realloc(void *__ptr, size_t __size):更改已经配置的内存空间,即更改由malloc()函数分配的内存空间的大小。如果将分配的内存减少,realloc仅仅是改变索引的信息。如果是将分配的内存扩大,则有以下情况:1)如果当前内存段后面有需要的内存空间,则直接扩展这段内存空间,realloc()将返回原指针。2)如果当前内存段后面的空闲字

2016-09-20 15:10:51 730

转载 C语言中memset函数详解(很清晰易懂)

功 能:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,  块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作  用 法: void *memset(void *s,char ch, unsigned n);  程序例:  #include   #include   #include   int

2016-09-20 10:23:35 52901 2

转载 malloc函数详解

一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释

2016-09-20 09:49:07 540

转载 结构体struct和typedef后面接指针的含义

这几天构建TIN的时候一直有这个用法,没讲过,这里搜到看一下,原来是给结构体指针举个别名!在C语言里面,struct是用来定义新的数据类型——结构体,typedef是给数据类型取别名。据说这两个关键词同时使用有助于减少代码量和增加代码的可读性(不过我认为它当typedef和struct在一起的时候反而降低了代码的可读性),很多时候为了方便,我们常常讲stuct与typedef放在一

2016-09-20 09:28:13 1181 1

原创 快速排序法!!

#includeusing namespace std;int AdjustArray(int s[], int L, int R){int i=L, j=R, x=s[i]; while(i{// from right to leftwhile(i=x){j--;}if (i{s[i]=s[j];i++; //i++意思是本坑已

2016-09-19 22:29:35 423

转载 安全起见,小心使用C语言realloc()函数

在C语言中,良好的编程习惯要求一个函数只做一件事,如果一个函数实现了若干功能,可以说基本是一个糟糕的设计。C语言 realloc() 函数位于 stdlib.h 头文件中,其原型为:    void *realloc(void *ptr, size_t size);realloc() 会将 ptr 所指向的内存块的大小修改为 size,并将新的内存指针返回。设之前内存块

2016-09-19 14:47:10 1261

转载 指针数组和数组指针的区别

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。in

2016-09-19 10:41:30 369

转载 图文并茂用地址分析双向链表(很清晰!)

网上很多对双向链表解释的文章都是用这个结构: 它们的连接情况是这样的: 相当的不直观,今天我要从详细的地址出发来解释双向链表的原理。 现定义一个结构体如下:struct student{char name;struct student *next;struct student *prior;};

2016-09-19 10:24:01 398

转载 struct和typedef struct

三块来讲述:  1 首先://注意在C和C++里不同    在C中定义一个结构体类型要用typedef:    typedef struct Student    {    int a;    }Stu;    于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)    这里的Stu实际上就是s

2016-09-18 15:41:11 306

转载 C语言指针强制类型转换(这个明天看!)

概要:C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值。不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给程序员的一种记住这个地址的方便一点的方法。但是,不同的变量在机器中都是0-1代码,所以,我们不能简单的通过检查一个值的位来判断它的类型。例如,定义如下:int a; fl

2016-09-18 14:15:07 648

转载 特征值和特征向量

先放到这里,以前仅仅是知道怎么求出一个矩阵的特征值和特征向量,求法也比较简单,但是几何意义却不太懂。我们知道,矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量。在这个变换的过程中,原向量主要发生旋转、伸缩的变化。如果矩阵对某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。

2016-09-18 09:34:08 945

转载 曲率的基本概念 (式子记住!)

在SMT的8.4版本中,新推出了曲率属性,包括高斯曲率、最小最大曲率、平均曲率等概念。为了让大家更清楚的了解曲率,这里与大家共享一些曲率的基础知识。一、曲率基本概念    曲率是用来反映几何体的弯曲程度。            二、三维欧氏空间中的曲线和曲面的曲率    平均曲率、主曲率和高斯曲率是曲率的三个基本要素。    平均

2016-09-17 19:45:29 19584 1

转载 最小二乘法

跟Machine learning右点像,就是求拟合公式的参数。在我们研究两个变量(x,y)之间的相互关系时,通常可以得到一系列成对的数据(x1,y1.x2,y2... xm,ym);将这些数据描绘在x -y直角坐标系中,若发现这些点在一条直线附近,可以令这条直线方程如(式1-1)。  (式1-1)其中:a0、a1 是任意实数为建立这直线方程就要确定a0和a1,应用

2016-09-17 18:32:50 1246

转载 详解协方差与协方差矩阵

协方差的定义 对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式来计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么计算出来的吧。记住,X、Y是一个列向量,它表示了每种情况下每个样本可能出现的数。比如给定则X表示x轴可能出现的数,Y表示y轴可能出现的。注意这里是关键,给定了4

2016-09-17 16:07:24 12449

转载 Eigen: C++开源矩阵计算工具——Eigen的简单用法

Eigen非常方便矩阵操作,当然它的功能不止如此,由于本人只用到了它的矩阵相关操作,所以这里只给出了它的一些矩阵相关的简单用法,以方便快速入门。矩阵操作在算法研究过程中,非常重要,例如在图像处理中二维高斯拟合求取光斑中心时使用Eigen提供的矩阵算法,差不多十来行代码即可实现,具体可见:http://blog.csdn.net/hjx_1000/article/details/8490653;总体

2016-09-17 15:00:47 719

原创 PCL输入输出

#include #include #include intmain (int argc, char** argv){  pcl::PointCloud::Ptr cloud (new pcl::PointCloud);  if (pcl::io::loadPCDFile ("test_pcd.pcd", *cloud) == -1) //* load

2016-09-16 15:41:53 1432

转载 C++箴言:理解typename的两个含义

问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template class Widget; // uses "class"template class Widget; // uses "typename"  答案:没什么不同。在声明一个 template type paramet

2016-09-16 12:55:24 464

转载 本节描述PCD(点云数据)文件格式。

本节描述PCD(点云数据)文件格式。为什么用一种新的文件格式?PCD文件格式并非白费力气地做重复工作,现有的文件结构因本身组成的原因不支持由PCL库引进n维点类型机制处理(??)过程中的某些扩展,而PCD文件格式能够很好地补足这一点。PCD不是第一个支持3D点云数据的文件类型,尤其是计算机图形学和计算几何学领域,已经创建了很多格式来描述任意多边形和激光扫描仪获取的点云。包括下面几种格式

2016-09-09 15:01:08 1131

转载 Boost智能指针——shared_ptr

boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法:#include #include #include class implementation{publi

2016-09-09 14:46:29 441

转载 typedef

如何创建平台无关的数据类型,隐藏笨拙且难以理解的语法:使用typedef为现有类型创建同义字,定义易于记忆的类型名1typedef int size;12345678910void mea

2016-09-09 10:34:19 305

转载 struct和typedef struct(用到看)

struct和typedef struct分三块来讲述:  1 首先://注意在C和C++里不同    在C中定义一个结构体类型要用typedef:    typedef struct Student    {    int a;    }Stu;    于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student s

2016-09-09 10:13:40 353

转载 #ifndef 与 #program once 的区别

#ifndef#define#endif的用法发表于 2007-1-20 13:20:55#ifndef #define #endif的用法  整理:shichenghuahttp://www.eetop.cn/blog/?56085/action_viewspace_itemid_1145.html(前段时间要到这个,感觉shichenghua整理得不错,所以收藏到此处,若不

2016-09-08 13:17:22 525

原创 第三方库和新代码怎么编译?

亲测 有效啊!!经过各种安装花费了我三天 终于找到可靠了啊! 但是有点不一样,红色部分一定要注意啊!!都在这个word文档啊!

2016-09-06 15:49:23 962

qt5.8+VS2015+debug+X64

基于本地的资源管理器,相当于基于本地的百度云盘,完全有qt开发

2017-11-30

空空如也

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

TA关注的人

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