- 博客(14)
- 资源 (5)
- 收藏
- 关注
转载 c++代码优化总结
c++代码优化总结一. 优化之前 在进行优化之前,我们首先应该做的是发现我们代码的瓶颈(bottleneck)在哪里。然而当你做这件事情的时候切忌从一个debug-version进行推断,因为debug-version中包含了许多额外的代码。一个debug-version可执行体要比release-version大出40%。那些额外的代码都是用来支持调试的,比如说符号的查找。大多数实现
2012-02-29 16:37:54 802
原创 define与const、inline、typedef的区别
#define与const、inline、typedef的区别 我们在使用C++是肯定多次经意或不经意的使用过#define,在C++的头文件一般都是这样定义的:#if ! defined _SAMPLE_H_#define _SAMPLE_H_#endif //defined _SAMPLE_H_#define公用有很多,其在C++中也有不可代替的位置,然而在C++
2012-02-27 21:30:15 819
原创 堆和栈的区别(二)
堆(Heap)栈(Stack)1、内存分配方面: 堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。 栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2012-02-27 21:12:58 597
原创 有符号数与无符号数之间运算问题
有符号数与无符号数之间运算问题以下实验均在virual c++6中运行通过这个问题测试是否懂得C语言中的整数自动转换原则,有些开发者懂得极少这些东西。当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此,从这个意义上讲,无符号数的运算优先级要高于有符号数,这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。 首先进行一个实验,分别定义一个sign
2012-02-27 20:11:48 595
原创 堆和栈的区别(一)
一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态
2012-02-22 17:58:31 662
转载 程序调试能力和推荐书籍
在软件行业中,个人觉得每个Coder、Leader(那些当了Leader以后就不需要Code的除外)都应该除了具有良好的编码能力以外,最为主要的就是Debug的能力要坚实。千万不要告诉我Debug工作是Tester和QA的事情,首先你要认识到Debug的能力是一个并不简单的能力,能帮助你提高你的开发能力,加快开发速度,节约开发成本;其次你更应该知道,你所掌握的Debug的能力和技术并不可能抢去Te
2012-02-22 16:15:31 2909 1
原创 C++中的vector排序问题
最近做的东西,要将vector 中的内容输出,结果发现有些文件被交替反复打开,所以就想吧vector 中的元素排序,学习中发现下面这篇文章总结的挺好的,分享一下也~C++中当 vector 中的数据类型为基本类型时我们调用std::sort函数很容易实现 vector中数据成员的升序和降序排序,然而当vector中的数据类型为自定义结构体类型时,我们该怎样实现升序与降序排列呢?有两种方
2012-02-14 16:54:02 1668
原创 用opencv画两幅图片的直方图
//计算直方图,并用图片显示出来直方图结果图像; //原创crazyMu void DrawHis(IplImage *image1,IplImage *image2){ int size=256; float range[]={0,255}; float* ranges[]={range}; double binnum[256]={0};
2012-02-13 20:46:05 2518
转载 OpenCv矩阵操作函数大全
OpenCv矩阵操作有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等大多数函数支持ROI,如果图像ROI被设置,那么只处理ROI部分少部分函数支持COI,如果COI设置,只处理感兴趣的通道矩阵逻辑运算void cvAnd(const CvArr* src1,const CvArr* sr
2012-02-13 20:43:17 6132
原创 OpenCV 矩阵操作
GEMM通用矩阵乘法void cvGEMM( const CvArr* src1, const CvArr* src2, double alpha, const CvArr* src3, double beta, CvArr* dst, int tABC=0 );#define cvMatMulAdd( src1, src2, src3, dst ) c
2012-02-13 19:57:22 4185
转载 图像变换 - 图像拉伸、收缩、扭曲、旋转 - 透视变换(cvWarpPerspective)
透视变换(单应性?)能提供更大的灵活性,但是一个透视投影并不是线性变换,因此所采用的映射矩阵是3*3,且控点变为4个,其他方面与仿射变换完全类似,下面的例程是针对密集变换,稀疏图像变换则采用cvPerspectiveTransform函数来处理。-------------------------------------------------------------------------
2012-02-13 19:55:53 11391 1
原创 opencv中关于直方图的相关函数
直方图 CvHistogram 多维直方图 typedef struct CvHistogram { int header_size; CvHistType type; int flags; int c_dims; int dims[CV_HIST
2012-02-13 19:49:17 4675
转载 OpenCV随机方法使用
OpenCV也提供了另一个数据结构来做Rand的实作,CvRandState,被包在"cvcompat.h"里,"cvcompat.h"的完整意 思是Computer Vision Compatility,CvRandState的特色是可以选定常态分布及均匀分布,不过,它只能运用在矩阵跟一维数组.矩阵的部份程序代码如下RandState矩阵的实作#include #incl
2012-02-10 14:21:24 835
转载 opencv矩阵运算
opencv矩阵运算 综述OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样.OpenCV将向量作为1维矩阵处理.矩阵按行存储,每行有4字节的校整.分配矩阵空间:CvMat* cvCreateMat(int rows, int cols, int
2012-02-09 15:57:41 1453
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人