- 博客(22)
- 收藏
- 关注
原创 Bit Operation
前言 计算机中的所有数据都是按照bit为单位进行存储的,由于二进制存储的特殊性,编程实现中出现了很多位操作技巧,这里做一下总结。总结的内容借鉴了网友博客、书籍内容,然后还有个人理解,侵删。1-存储数字先来看一道牛客上的题目:int main(){ int i=-2147483648;//这里有问题,后文说 printf("%d,%d,%d,%d",~i,-i,1-i,-1-i);
2016-10-14 20:45:43
1468
原创 C/C++经典知识链接
1.对数组名取地址 2.valotile 3.stack and heap 4.StackOverflow-bit operation 5.参数入栈顺序-汇编 6.C++多线程
2016-10-10 14:34:38
612
原创 内存对齐
1.CPU如何读取内存CPU在处理内存的过程中,是把内存当做一块一块来处理的,每一块可以是2,4,8或16bytes。假设CPU读取块的大小是4bytes 其中一块内存分布如图: 假设我们读取第一个char类型,那么CPU会读取0-3地址的4bytes的内存,存入寄存器,然后踢出1-3部分的内存,最后得到char类型的变量值。然后读取int类型,此时CPU是不能直接读取1-4地址空间的,
2016-09-28 11:42:22
368
1
原创 Class内存小记
class ClassA {public: virtual ~ClassA(){}; virtual void FunctionA(){};};class ClassB:public ClassA {public: virtual void FunctionB(){};};class ClassC : public ClassB {public:};1.对象内存c
2016-09-27 20:35:28
423
原创 大道理
1.童子军军规: 入手维护一段代码、一个项目时,一定要保证完成的代码比初始的代码更加整洁。每个开发者都遵循此规则,就能保证代码在整个生命周期中是整洁的,也能延长其寿命。2.勒布朗法则 Later equals never!
2016-06-10 10:57:52
414
原创 findChessboardCorners函数学习笔记
在双目视觉应用领域,要想进行精确的操作,第一步要做的就是对摄像机的内参数进行求解,这个过程称之为标定。整个标定过程由cameraCalibrate()函数完成,测量相机焦距和便宜主要的原理是张正友标定法,测量畸变参数是Brown算法。该标定函数的一个输入参数是像点坐标,即在摄像机成像平面上对应角点相对于摄像机坐标系的二维坐标。而获得像点坐标的函数第一步就是找到角点坐标,函数是findChessboa
2016-04-09 10:20:16
37596
8
原创 OpenCV 函数学习笔记
1.cv::mixChannels(const Mat* src, size_t nsrcs, Mat* dst, size_t ndsts, const int* fromTo, size_t npairs) 版本:opencv3.1 功能:把输入矩阵的特定通道复制到输出矩阵的特定通道。输出矩阵和输入矩阵都可以是多个。 参数:1.输入矩阵,可以是一个Mat或者vector<Mat>,但是所有
2016-04-07 10:14:31
509
原创 opencv x.x 编译源码
虽然opencv可以下载exe文件然后安装,通过配置就可以在vs中使用,但是opencv文件夹下sources文件中的源码是看不见的。而且对于codeblocks这个IDE需要对opencv的源码就行编译才能使用。因此Cmake工具编译源码的操作必须要有。 工具:(1)opencv3.0 (2)cmake3.5.0 (3)VisualStdio2013 (4)CodeBlocks16.01
2016-04-05 17:47:20
580
原创 OpenCV中一些数据结构的别名
在平时做项目过程中经常把一些数据类型、数据结构通过typedef转换为别名。项目初期一些没想好的数据类型可以先用别名代替,确定之后就可以直接修改别名;当然别名可以起的有一定的含义,这样开发者在使用的时候,意义更明确,代码跟简洁;跨平台时,只需修改别名定义即可,开发者也无需关注底层的数据结构。OpenCV中也存在这样的别名。
2016-03-24 16:05:42
790
原创 Mat行复制
1.Mat::row()函数作用:截取特定行数矩阵,并创建矩阵头部信息(header)。 **复杂度:**O(1),原因是新的矩阵数据与源矩阵共享,并不会创建新的存储空间。所以导致的问题是下方代码并不会执行: for (int i = A.rows; i > 100; i--) { A.row(i) = A.row(i-100);//图像下移100个像素 } 这
2016-03-14 10:17:06
634
原创 2015年浅度总结
迎来了2015年的最后一天,充满惊喜的一年,一年前,我肯定想不到现在的局面。听着“李健”,想一下过去。 去年此时,我在某小型公司实习。做网站,html css eazyui c# ajax都用过,前端后台折腾个遍,谢谢大师兄(boss)给我这个机会。第一次在代码的海洋中翻滚;第一次做不是学院安排的无聊实验课;第一次使用了固态硬盘,用VS2013,飞一般的感觉,感谢期间郭哥对我的
2015-12-31 22:35:14
465
原创 删除文件等用trash命令
rm命令就是销毁的意思,不是手动拖到垃圾箱内的文件都找不回来。因此慎用rm命令,尤其不要非常自行的在rm命令后边补上自以为正确的字符表达式,这样可能删除无辜而且重要的文件。今天写了一个trash小脚本,平时可以替换rm命令使用。代码如下:#!/bin/basht_path="/usr/trash"date=`date +%Y%m%d%H%M%S`array=( "$@" )for i
2015-12-30 17:24:56
3593
原创 windows环境下全盘搜索特定文件
如果你想让代码不消失,那就让他自由,让他存在很多FTP服务器上。–linus 想法很简单,动机很龌龊,假如你手里有一台同学的电脑,你突然想知道这台电脑里有没有小电影,那么该怎么办,很简单,给我3s执行以下脚本就ok,代码如下:set fso = createobject("scripting.filesystemobject")dim l_contentdim sum_folder
2015-12-16 16:45:47
1530
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人