联合体:当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)

1. 联合体是一种结构;

2. 他的所有成员相对于基地址的偏移量均为0;

3. 此结构空间要大到足够容纳最“宽”的成员;

  //但是其大小不仅仅由最宽的成员决定,还需要考虑每个成员的自身对齐方式!

4. 其对齐方式要适合其中所有的成员。

const作用:

c++编译器会在编译时,把常量优化成立即数,减少内存访问。因此,能够使用const的变量(在运行过程中不会发生变化的变量),尽量使用const去修饰。

特别是处理矩阵以及图像指针运算时。

inline function 内联函数:

函数调用的开销是很大的,如果有一段短小而需要频繁调用的函数,可以写为内联函数。

也就是建议编译器在函数调用点上展开代码后再进行编译。

这里的建议意思是,如果函数较复杂,编译器是不会内联的,即使内联了,只会让编译花费更多时间,并且很多编译器不允许递归函数的内联。

范数:

给定向量 x = (x1, x2, x3, ... xn)

L1范数:向量各个元素绝对值之和,

L2范数:向量各个元素绝对值平方求和然后平方根,

Lp范数:向量各个元素绝对值p次方求和然后1/p次方,

L∞ (Lc范数)范数:向量各个元素求绝对值,其中的最大值。

指针与引用:

指针是一个变量,存储的是另外一个变量的地址,这另外的变量的类型是指针的基类型,也就是指针指向的内存空间的类型。而指针本身占用的是一个16进制的内存空间(2个字节)。

int a = 1;

int* b = &a;

void func(int* p){}

调用:func(b);

引用 只是变量的一个别名,相当于绰号。

int a = 1;

int& b = a;

void func(int& p){}

调用:func(b);

*** 引用在创建时必须被初始化,因为引用不能指向空值。

引用的作用,使用指针都能完成,为什么还要使用引用?

  因为指针比较危险,在确定只需要只用引用传递功能时,可以只使用引用。(函数调用时)

2016-11-17 今天花了两个多小时才解决了一个问题:

opencv的cvMat结构向eigen的Matrix结构转换时,

需要使用opencv的 #include <opencv2/core/eigen.hpp>头文件,

而该文件又是依赖于eigen核心库 #include <Eigen/Core>的。

重点是在写预处理代码时,注意顺序!先包含eigen相关库,再包含opencv库!不然opencv会找不到eigen。。。。哭了

2016-11-19

linux目录:

/usr 是系统级目录,相当于 C:/windows, /usr/lib 相当于 C:/windows/system32; 其中存放系统软件,例如PCL库。系统源码放在/usr/src

/usr/local 是用户级目录,相当于C:/Program Files ;存放用户常用第三方库,例如OpenCV,g2o;

/opt 是可选的意思,相当于D:/software, 在硬盘空间不够时,可以将其直接挂载到外部存储上,不影响使用。相当于一些硬盘版的软件。

2016-12-06

集合和多元组的区别:

多元组:可重复有顺序!

一个由C/C++编译的程序占用的内存分为以下几个部分:

 1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。

 2、堆区(heap):一般是由程序员分配释放,若程序员不释放的话,程序结束时可能由OS回收,值得注意的是他与数据结构的堆是两回事,分配方式倒是类似于数据结构的链表。malloc和new出来的空间就属于堆区。

 3、全局区(static):也叫静态数据内存空间,存储全局变量和静态变量,全局变量和静态变量的存储是放一块的,初始化的全局变量和静态变量放一块区域,没有初始化的在相邻的另一块区域,程序结束后由系统释放。

 4、文字常量区:常量字符串就是放在这里,程序结束后由系统释放。

 5、程序代码区:存放函数体的二进制代码。

C++ 与OpenCV 学习笔记的更多相关文章

  1. opencv学习笔记(七)SVM+HOG

    opencv学习笔记(七)SVM+HOG 一.简介 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子 ...

  2. opencv学习笔记(六)直方图比较图片相似度

    opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将 ...

  3. opencv学习笔记(五)镜像对称

    opencv学习笔记(五)镜像对称 设图像的宽度为width,长度为height.(x,y)为变换后的坐标,(x0,y0)为原图像的坐标. 水平镜像变换: 代码实现: #include <ios ...

  4. opencv学习笔记(四)投影

    opencv学习笔记(四)投影 任选了一张图片用于测试,图片如下所示: #include <cv.h> #include <highgui.h> using namespace ...

  5. opencv学习笔记(三)基本数据类型

    opencv学习笔记(三)基本数据类型 类:DataType 将C++数据类型转换为对应的opencv数据类型 OpenCV原始数据类型的特征模版.OpenCV的原始数据类型包括unsigned ch ...

  6. opencv学习笔记(二)寻找轮廓

    opencv学习笔记(二)寻找轮廓 opencv中使用findContours函数来查找轮廓,这个函数的原型为: void findContours(InputOutputArray image, O ...

  7. opencv学习笔记(一)IplImage, CvMat, Mat 的关系

    opencv学习笔记(一)IplImage, CvMat, Mat 的关系 opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,M ...

  8. paper 93:OpenCV学习笔记大集锦

    整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址: ...

  9. (转) OpenCV学习笔记大集锦 与 图像视觉博客资源2之MIT斯坦福CMU

          首页 视界智尚 算法技术 每日技术 来打我呀 注册     OpenCV学习笔记大集锦 整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的 ...

  10. OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波

    http://blog.csdn.net/chenyusiyuan/article/details/8710462 OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波 201 ...

随机推荐

  1. [No000096]程序员面试题集【上】

    对几家的面试题凭记忆做个总结,基本全部拿到offer,由于时间比较长,题目只写大体意思,然后给出自己当时的答案(不保证一定正确): abstract类不可以被实例化 蛋糕算法: 平面分割空间:(n-1 ...

  2. 《深入理解Java内存模型》读书总结

    概要 文章是<深入理解Java内容模型>读书笔记,该书总共包括了3部分的知识. 第1部分,基本概念 包括"并发.同步.主内存.本地内存.重排序.内存屏障.happens befo ...

  3. 用于科学计算的Python库

    Matplotlib NumPy Pandas SciPy SymPy

  4. 网络切片在5G中的应用

    SDNLAB君 • 16-11-25 •1509 人围观 5G和网络切片 当5G被广泛提及的时候,网络切片是其中讨论最多的技术.像KT.SK Telecom.China Mobile.DT.KDDI. ...

  5. 详解mysql如何配置远程链接,解决各种连接问题

    在服务器上面我们经常需要去使用mysql,有些童鞋刚刚配置好了服务器,想在本地的一些图形化软件去连接mysql得到更直观的表格显示,此时很可能不允许连接,为了探究为什么连接失败,在这里我会对mysql ...

  6. grouping sets从属子句的运用

    grouping sets主要是用来合并多个分组的结果. 对于员工目标业绩表'businessTarget': employeeId targetDate idealDistAmount 如果需要分别 ...

  7. 千万级高并发负载均衡软件HAproxy

    1负载均衡产品介绍 基于硬件的负载均衡设备例如F5,Big-IP,基于软件的负载均衡产品HAproxy,LVS,nginx在这些软件产品中,又分为基于操作系统的软负载实现和基于第三方应用的软负载实现. ...

  8. 在Arcscene绘制管线三维横断面(AE绘制三维点阵文字)

    根据数据信息动态生成三维管线及横断面表格.效果图如下: 在获取信息后,直接构造点阵进行文字绘制即可. 绘制IElement代码: /// <summary> /// 绘制三维文字 /// ...

  9. UBER的故事

    今天分享一个很好的视频,19分钟,这个视频讲了过去几年一家伟大公司的成长的思路,这个演讲的PPT很棒,演讲者的语速.语调.表情等也非常适合大家在日常工作中学习.   链接:http://v.youku ...

  10. ReactNative 分享解决listView的一个郁闷BUG

    用ListView的时候,会出现一个非常傻bi的情况,就是render的时候,listView不显示,需要碰/滑一下才会显示. 一开始我在怀疑自己是不是布局哪里有冲突,改到哭都没发现布局有什么问题,直 ...