- 博客(30)
- 资源 (5)
- 收藏
- 关注
原创 空间直线方程
1. 已知一个点和一个平行直线的方向向量 - 点向式 其中 (x1,y1,z1)是已知点 ,(m,n,p)是方向向量,分母右乘即可转换成参数方程形式。 2. 已知两个点 - 两点式 其中 (x1,y1,z1)(x2,y2,z2)是已知点 ,分母右乘即可转换成参数方程形式。...
2018-10-09 10:38:22
8413
原创 SVD
对于方阵,我们都知道能够进行特征值分解,分解后能得到一些特征值和对应的特征向量。 那么问题就来了,对于不是方阵的矩阵来说该用什么来显示这个矩阵的特征呢? 奇异值分解SVD就很好的解决了这个问题。 | M*N |= | M*M | * | M*N | * | N*N | 其中 | M*N | 是仅含奇异值的矩阵,左右两边都是奇异向量,并且里面左奇异向量与右奇异向量矩阵里面都是正交...
2018-10-08 10:55:29
209
原创 使用友元函数重载运算符
1. 声明友元函数能让非类内的成员函数访问到类内的私有数据成员 2. 为什么要用友元函数来重载运算符? 首先如果是在类内重载的运算符函数,都默认有一个 *this 指针,所以此时对二元运算符重载的话只能放一个形参。 比如: int A =0; A = B * 5; // B是一个自定义的类 在类内重载 * 运算符 就相当于 A = B.opera...
2018-10-05 21:41:01
4571
1
原创 空指针、野指针
1. 空指针 空指针是一个特殊的指针,也是唯一一个对任何类型对象都合法的指针。指针变量具有空指针值,表示它当时处于闲置状态,没有指向有意义的东西,空指针用0表示。2. 野指针 也就是指指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。野指针不是NULL指针,是指向 “ 垃圾内存 ” 的指针。 此外还有一点: 当指针被 free 或...
2018-10-04 19:25:53
249
原创 数组名和数组名取地址的区别
以下代码会打印出什么样的日志呢?#include <stdio.h> int a[2] = {1,2};int main(){ printf("a = %p\n", a); // I printf("&a = %p\n", &a); // II printf("a + 1 = %p\n", a + 1);// ...
2018-10-04 18:57:49
161
原创 预处理、编译、汇编、链接
1. 预处理 (预处理器)预处理阶段主要处理 #include 和 #define ,它把#include包含进来的 .h 文件插入到 #include 所在的位置,把源程序中使用到的用#define 定义的宏用实际的字符串代替。2. 编译阶段(编译器)在这个阶段,编译器先要检查代码的规范性和语法错误等,以确定代码的实际要做的工作,检查无误后将代码翻译成汇编语言。3. 汇编阶段(...
2018-10-03 19:39:10
137
原创 关于const
1. const 放在函数的后面 (一般修饰成员函数) 在普通的非const成员函数中,this的类型是一个指向类类型的const指针。可以改变this所指向的值,但不能改变this所保存的地址。在const的成员函数中,this的类型是一个指向const类类型对象的const指针。既不能改变const指向的对象,也不能改变this所保存的地址。 任何不会修改数据成员的函数...
2018-10-03 17:01:53
121
转载 纯虚函数、抽象基类
1. 纯虚函数 当在基类中时 : virtual 函数类型 函数名 (参数列表) = 0 ; 当在派生类当中时 : 若是重写的是基类中已声明的虚函数则可不用杂开头加virtual,否则与在基类中一致。class Person{ virtual void Display () = 0; // 纯虚函数protected : string _name ; ...
2018-10-02 19:50:52
461
原创 关联容器、友元
1 .map 中的元素是一些 关键字--值(key-value) 对 :关键字起到索引的作用,值表示与索引相关联的数据。 字典就是一个使用map很好的例子:可以将单词作为关键字,单词的释意作为值。2 . set 关键字即值,即只保存关键字的容器。 个人感觉 set 一般配合 map 使用,对某些关键字的一些特别操作等。 3. 类可以允许其他类或者函数访问它的非公...
2018-10-02 10:40:33
154
原创 拷贝、赋值、销毁
1. 直接初始化 是使用于我们提供参数相匹配的构造函数来进行初始化。2. 拷贝初始化 当我们时用拷贝初始化时,我们要求编译器将右侧运算对象拷贝到正在创建的对象中, 拷贝初始化通常是调用拷贝构造函数来实现的。 Ps :在正式初始化时 用 ” = “ 会进行拷贝初始化 用 “( )” 的话会进行直接初始化,即调用构造函数。3. 拷贝赋值运算符 ...
2018-09-30 14:45:12
159
原创 转换构造函数、类型转换运算符
先说一点转换构造函数和类型转换运算符共同定义了类类型转换 1. 先讲一下隐式的类类型转换,C++语言在内置类型之间定义了几种自动转换规则。同样的我们也能为类定义隐式转换规则。如果 构造函数只接受一个实参 ,则它实际上定义了转换为此类的隐式转换机制,有时我们把这种构造函数称作转换构造函数。(隐式转换编译器只会自动地执行一步,如果需要执行多步就是语法错误了) 例如一个函数B有一个参...
2018-09-30 13:43:14
322
原创 虚析构函数
1. 虚析构函数的主要作用是防止内存泄露 。 C++ 的一大特点就是用基类指针指向派生类的对象,进而用虚函数实现多态。所以如果涉及到用基类指针指向派生类的对象时 那么当基类指针要释放时,也就是调用析构函数时,该怎么办?(不能内存泄露) 这时候如果将基类的析构函数 写成虚析构函数 那么该基类指针释放过程中,就会调用派生类的析构函数(先构造后析构),当然也会调用基类的析构函数...
2018-09-29 19:33:48
154
原创 内存泄露
1. 在类的构造函数和析构函数中没有匹配的调用了 new和delete 函数 两种情况下会出现这种内存泄露:一是在堆里创建了对象占用了内存,但是没有显示地释放对象占用的内存;二是在类的构造函 数中动态的分配了内存,但是在析构函数中没有释放内存或者没有正确的释放内存2. 在释放对象数组时在delete中没有使用方括号方括号是告诉编译器这个指针指向的是一个对象数组,同时也告...
2018-09-29 18:47:46
138
原创 虚继承、虚函数
1. 虚继承简单的说就是如果有两个类都继承了同一个基类(A),那么,如果有第三个类又继承了这两个类,第三个类就会出现有 两个基类(A)的情况,虚继承就能避免这种情况。 从实现代码来看: 普通继承:/** 普通继承(没有使用虚基类)*/ // 基类Aclass A{public: int dataA;}; class B : public A...
2018-09-29 18:30:37
348
原创 插入排序算法、时间复杂度
1. 插入排序算法void sortt(int a[],int length) // 插入排序算法{ for (int i = 0; i < length-1; i++) { if (a[i]>a[i + 1]) { int temp = a[i+1]; int j = i+1-1; while ( j>=0 && a[...
2018-09-29 10:07:51
4452
原创 C
1. 共用体和结构体(又名联合体)区别 共用体 用途:使几个不同类型的变量共占一段内存(相互覆盖) 共用体变量所占内存长度是最长成员所占内存的长度(成员不能同时存在) 共用体每次只能存放一个成员,共用体变量中起作用的成员是最后一次存放的成员,存入新的原来的就失去了作用 结构体 : 用途:把不同类型的数据组成一个整体 -- 自定义...
2018-09-27 18:15:24
189
原创 C++
1. 拷贝构造函数 (1) 主要用于类对象之间的复制 (2) 是一种特殊的构造函数,函数的名称必须和类名称一致,并且它的唯一一个参数是本类型的一个引用变量,该参数是const 类型,不可变的。 (3) 当一个已初始化过了的自定义类对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类 的对象需要拷贝时,拷...
2018-09-27 15:01:43
120
原创 杂
1. Vec 和 Matx (类里提供了Matx于Matx的一些基本代数函数)类是用于小型向量以及矩阵的操作,提前知道规格,跟高效,减少了动态内存的分配。2. Point类 提供了 点乘 和 叉乘 的操作 3. 旋转卡壳计算最小外接矩形4. 矩阵中心化就是指使用数据减去数据的均值后的到的样本均值为0 .(本质上就是数据平移的过程) 矩阵的标准化即将中心化后的数据...
2018-09-26 09:43:05
176
转载 角点检测
注意:以下内容转自一个大神的博客。https://blog.youkuaiyun.com/lwzkiller/article/details/54633670 关于角点的应用在图像处理上比较广泛,如图像匹配(FPM特征点匹配)、相机标定等。网上也有很多博客对Harris角点检测原理进行描述,但基本上只是描述了算法流程,而其中相关细节并未作出解释,这里我想对有些地方做出补充说明,正所谓知其然知...
2018-09-24 14:30:28
276
原创 0916
1. 关于静态成员变量 是在全局区申请的内存 例: 类a中有一个静态成员变量static int b 那么在初始化 b 时要在全局区声明一下(静态成员变量是属于这个类的二不是某一个实例对象) int a::b = 0; (再类外这样赋值即可)另外 普通静态全局变量 是不能跨文件调用的,全局变量是可以的2. 只读成员函数 (在成员函数后面加上 const ) ...
2018-09-16 13:10:10
412
原创 0915
1. 派生类使用构造函数时如果想向基类(有参构造函数)传递参数时,应使用初始化列表(冒号+基类名),来传递相应参数 若是一个类中含有其他类的对象时,若想使用该包含对象的构造函数也应使用初始化列表(冒号+具体对象名),来传递相应参数 例 class b{ b(); b(int m,int n) { }}cla...
2018-09-16 09:25:26
141
原创 0914 C++
1. 虚函数指在基类中函数前面加 Virtual 的函数,且只对基类有效,派生类中 virtual 是没用的2. 在派生类中继承了基类并重写了基类中 前面有 virtual 的函数 ,继承基类的类实例化后会带有一个4字节的函数指针(4 字节 也叫虚表) 基类指针:当调用普通重写函数时,是什么类指针就调用什么类的重写函数基类指针:当调用虚拟函数时,指针指向的是哪个类的对象地址,就调用哪个...
2018-09-14 21:37:37
94
原创 0908
C++ 1. 内联函数就等价于C的宏函数 (C++的障眼法之一),相当于就将代码替换掉了你当前要执行的函数,不用入栈出栈,对于小代码量的程序段节省了时间和空间开销,此外,如果没有指定内联函数,编译器可以决定哪些函数内联。使用方法: 在函数前面加 inline 即可 2. private: 是只有类内的成员函数才能访问 , public: 在程序任何地方都可以访问, ...
2018-09-09 16:09:00
199
原创 多线程
1. 同一个线程地址函数 可以是多个线程的入口函数 ,即每个每个线程都执行形同的操作2. 一个变量的地址,可由 _beginthread 函数作为 void* le类型的形参引入线程执行函数内3. 在线程里执行程序时,可以调用 windows的APIl函数Sleep(a)进行该线程cpu利用l率的减小 ...
2018-09-07 21:36:52
88
原创 分水岭分割法 、mean-shiift
1. 分水岭算法对微弱边缘具有良好的响应,图像中的噪声、物体表面细微的灰度变化,都会产生过度分割的现象。但同时应当看出,分水岭算法对微弱边缘具有良好的响应,是得到封闭连续边缘的保证的。另外,分水岭算法所得到的封闭的集水盆,为分析图像的区域特征提供了可能。2. 为消除分水岭算法产生的过度分割,通常可以采用两种处理方法,一是利用先验知识去除无关边缘信息。二是修改梯度函数使得集水盆只响应想要探测的目...
2018-09-05 10:10:50
929
原创 9-4
1. 使用模糊技术进行灰度变换和空间滤波 (1)基础 : 模糊集合理论 (对于隶属度函数的值而言) 子集、并集、交集 (AND交 取max \OR并 取min ) (2)一些具体操作流程 1.模糊输入:对于每个标量输入,通过将出入映射到 [0,1] ,在每个规则中使用可用的隶属度函数,找到相应模糊值 ...
2018-09-04 15:44:01
206
原创 9-3整理
1. 基于电磁波谱的的成像研究 了解了计算机断层 、无线电波用于核磁共振成像 2. 空间和灰度分辨率 (1) 空间分辨率:可以有很多方法来说明,其中每单位距离线对数和每单位距离点数是最通用的度量。在美国印刷和出版业,这一度量通常使用每英寸点数(dpi)来表示。 (2)灰度分辨率 :是指在灰度级中可分辨的最小变化,最通用的数是8比特,也就是我们常说的256...
2018-09-03 21:30:56
215
原创 图像的卷积
1. 首先计算卷积核(有些卷积核和本身是一样的,卷积核就是将自己逆时针旋转180度)2. 对目标图像上每一个点 计算卷积 (算子与目标图像对应相乘) 然后求和,计算的结果为目标图像上该点的卷积结果3. 把整幅图像遍历一遍即可
2017-09-26 19:43:46
203
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人