自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 无参考图像质量评价

图像质量评价方法可分为:1.主观评价方法:主观评价由观察者对图像质量进行主观评分, 一般采用平均主观得分 (Mean opin-ion score, MOS) 或平均主观得分(Differentialmean opinion score, DMOS) (即人眼对无失真图像和有失真图像评价得分的差异) 表示, 但主观评价工作量大、耗时长, 使用起来很不方便。2.**客观评价方法:**是由计算机根据...

2018-10-31 21:41:17 10682 3

原创 如何关闭安全检查

我们编程时有时喜欢使用例如sprintf等比较老的函数,而编译器通常会报错,要求我们使用sprintf_s来代替,这时一件很烦的事情,这时我们只需要添加一个宏定义关闭安全检查就能让系统自动运行了。#define _CRT_SECURE_NO_WARNINGS...

2018-10-23 09:44:58 3027

原创 能量定理

∫−∞+∞∫−∞+∞F(u,v)G(u,v)dudv=∫−∞+∞∫−∞+∞f(x,y)g(−x,−y)dxdy\int^{+\infty}_{-\infty}\int^{+\infty}_{-\infty}F(u,v)G(u,v)dudv=\int^{+\infty}_{-\infty}\int^{+\infty}_{-\infty}f(x,y)g(-x,-y)dxdy∫−∞+∞​∫−∞+∞​F(...

2018-10-22 14:08:31 585

原创 卷积的性质

参考网址:http://www.docin.com/p-1666980521.html/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1.交换律:f1∗f2=f2∗f1f_1*f...

2018-10-20 11:23:15 16351

原创 离散余弦变换

主要参考博客:https://www.jianshu.com/p/b923cd47ac4ahttps://blog.csdn.net/shenziheng1/article/details/52965104离散余弦变换主要是傅里叶变换的变形,将原函数长度翻倍并水平移动将其变为关于原点对称的偶函数,这样在进行傅里叶变换,由于为偶函数所以sin成分将消失,这样一来傅里叶变换将仅仅保留实数部分。...

2018-10-17 11:12:57 1900

转载 Matlab绘图

https://blog.csdn.net/qing101hua/article/details/78425567

2018-10-15 13:27:20 173

转载 matlab中如何把一个数组中的NaN值去掉

https://blog.csdn.net/qq_38426337/article/details/81514504

2018-10-15 13:25:01 6592

转载 MATLAB查看数组(矩阵、向量)的大小

https://blog.csdn.net/zhouheng2018/article/details/70196664/

2018-10-15 13:24:29 6144

转载 MATLAB数组元素引用的三种方法

https://blog.csdn.net/sinat_27554409/article/details/72355422

2018-10-15 13:23:03 5197

原创 matlab数据类型转换

https://blog.csdn.net/zllljf/article/details/78881081

2018-10-15 13:21:55 11240

原创 句柄和指针的区别

1.https://blog.csdn.net/u014041012/article/details/448783752.https://blog.csdn.net/macrossdzh/article/details/45886813.https://www.cnblogs.com/findumars/p/5928707.html以上三个链接说的很好,建议大家看看。1,2分别说了一个部分,...

2018-10-14 21:01:33 120

原创 图像形态学之细化

细化公式:A⊗B=A−(A⊗B)A\otimes B=A-(A\otimes B)A⊗B=A−(A⊗B)注:第二个符号里面应该是圆圈里面一个米字代表击中击不中变换,只是latex打不出来我才这样代替。就是先用击中击不中变换对图像进行处理,我们选用的element如图左上角所示,这个element一般只会击中图像边缘的部分,我们击中图像边缘后再用原图减去击中的边缘,这时图像就会缩小一圈。我们...

2018-10-12 10:42:19 3837

原创 Gradient boosted decision tree

1.Adboost decision treeGradient boosted decision 就是将Adaboost和decision Tree结合起来的算法。Adaboost是根据前一步求出的g的错误率来提高错误数据在下一笔训练数据里面的权重来不断训练处新g的。但是decision tree没有权重的概念我们该怎么办呢?我们的方法是根据权重来对数据进行取样,比如错误率本来是10,那...

2018-10-11 22:06:34 311

原创 随机森林

以上是基本的RF,首先利用bagging获取不同的资料,然后对不同的资料使用decision tree,最后对decision tree的结果进行公平的投票。更近一步,我们不止将数据的获取随机化,而且在每次branch的时候选择不同的特征子集进行分割,比如总共有100个特征,我们在每次baranch时随机抽取10个特征进行分割特征的选取。我们选取子空间的过程其实就是对原特征进行一个投影,...

2018-10-11 13:31:47 786

原创 条款12:以对象管理资源

例子:void f(){Investment *pInv=vreateInvestment();//调用factory函数...delete pInv;}这个代码的问题是,当…处发生return,goto,异常时,后面的delete代码将不能被执行,那么就容易发生内存泄漏问题。解决办法是将delete放在一个对象类,利用对象的析构函数来delete内存。void f(){s...

2018-10-11 10:51:42 121

原创 条款12:复制对象时勿忘其每一个成分

1.编译器是记仇的当我们写出我们自己的赋值构造函数时,如果我们忘记给某些成员变量进行赋值(比如五个变量,我只复制了4个),那么编译器是不忘告诉你的,编译器会编译成功。所以当我们为class添加一个新的成员变量的时候,我们需要修改构造函数和copying函数。当发生继承时,问题会更严重,因为你继承的新类里面的构造函数将所有新的成员变量都赋值了,但是由于之前基类构造函数没有将所有值进行赋值,所以有...

2018-10-11 10:27:27 129

原创 条款11:在operator中处理“自我赋值”

例子:一个不安全的自我赋值Widget& Widget::operator=(const Widget& rhs){delete pb; pb=new Bitmap(*rhs.pb);return *this;}上面的这段代码当自我赋值时,会发生错误,因为开始就将pb给delete了,所以*rhs.pb也没有了。添加了一个证同测试以达到自我赋值检测目...

2018-10-11 10:13:51 222

原创 条款10:令operator=返回一个reference to *this

因为我们在写赋值时喜欢写成连等的形式,所以我们最后将返回写成reference to *this的形式。int x,y,z;x=y=z=15;当15被赋值给z的时候,z返回一个同类型的引用,这时就可以继续赋值给y实现连等。以上规则适用于所有赋值相关运算。这个规则并无强制性,但是还是遵守的好。...

2018-10-11 09:36:29 140

原创 Bagging AdaBoost Decision Tree的联系

Bagging为uniform的blending,随机采样构建不同的g,然后权重相等的投票。AdaBoost是线型的Blending,给与不同的g,不同的权重。Decision Tree是根据不同条件进行分割。...

2018-10-10 21:47:25 283

原创 机器学习技法第七周学习笔记

1.motivation of aggregation假如我们学习了T个模型,那么我们怎么组合这些模型能得到最好的模型呢?1.用validation求出其中最好的一个作为我们最终的模型。2.利用所有的模型进行平均投票。3.非均匀投票。4.不同条件下给与不同的投票权重。第一张图像的详细解释。仅靠一个模型选择可能效果不如众多模型一起的结果。上图说明,投票的结果能够使学习结果更好...

2018-10-10 19:36:15 168

原创 条款9:决不在构造和析构过程中调用virtual函数

class Transaction{public:Transaction();virtual void logTransaction() const=0;...}Transaction::Transaction(){...logTransaction();}class BuyTransaction:public Transaction{public:virtual v...

2018-10-10 13:06:19 152

原创 条款8:别让异常逃离析构函数

在析构函数里面抛出异常是不好的:class Widget{public:…~Widget(){…}};void doSomething(){std::vectorv;… //v这里被自动销毁}当v被销毁,里面的widget会被销毁,当第一个widget被销毁时抛出异常,其他的纠葛widget还是应该被销毁...

2018-10-10 11:52:00 156

原创 条款7:为多态基类声明virtual析构函数

1.将析构函数声明为virtual当我们的类要作为基类的时候我们最好将其析构函数声明为virtual类型,因为当我们用基类的指针指向一个派生类,当我们要用基类指针析构掉这个派生类的时候,如果基类的析构函数不是virtual,那么最终只有基类里面声明的变量被析构掉,而派生类里面的变量很可能没被析构掉,这会导致内存泄漏问题。当我们将基类设置为virtual的时候我们利用基类指针进行析构时,基类析构函...

2018-10-10 11:30:36 140

原创 条款6:如果不想使用编译器自动生成的函数,就该明确拒绝他

如果我们不想实现赋值构造函数和赋值函数该怎么办呢?如果我们不实现它,系统会给我们默认的实现它,这样让我们很难受,所以我们该怎么办呢?实现的办法如下:class Uncopyable(){protected:Uncopyable(){}~Uncopyable(){}private:Uncopyable(const Uncopyable&)Uncopyable& op...

2018-10-10 11:03:33 131

原创 条款5:了解C++默认编写并调用哪些函数

当我们写下:class Empty{};系统默认为我们编写了,默认构造函数,copy构造函数,析构函数,赋值函数。class Empty{public:Empty(){...}Empty(const Empty&rhs){...}~Empty(){...}Empty& operator=(const Empty& rhs){...}//一般用this代替左...

2018-10-10 10:43:22 117

原创 条款四:确认对象被使用前已先被初始化

当我们定义一些值的时候比如:class Point{int x,y;}...Point p;上述的x,y有时候被初始化为0,有时候不会,读取未初始化的值会导致不明确的行为。所以我们要保证初始化每一个被定义的值。1.class成员函数的初始化对于非内置类型,我们一般采用构造函数对其进行初始化,但是有一点我们很容易忽略:ABEntry::ABEntry(const std::str...

2018-10-10 10:18:40 107

原创 条款三:尽可能使用const

1.定义变量时使用constchar greeting[]="Hello";char* p=greeting;//non-const pointer,non-const dataconst char* p=greeting;//non-const pointer,const datachar* const p=greeting;//const pointer,non-const data...

2018-10-10 09:29:21 135

原创 条款2:尽量以const,enum,inline替换#

例如:#define asp 1.635这个只会在预编译的时候被处理,而不会在编译的时候被看到,所以当出现错误时系统会提示1.635的信息,而不会提示asp的信息,而当这个定义放在我们看不到的地方,我们将会奇怪我们怎么会出现1.635这个数字。所以我们建议使用:const double asp=1.635代替上述的写法。特许情况:1.声明指针常量的时候我们要将指针指向的数据和指针本身都声明为...

2018-10-09 21:46:53 124

原创 条款1

将C++看成是一个语言联邦,由四个部分组成:1.C语言。2.类。3.模板。4.STL。以上四个部分共同构成了C++语言,但是他们四个都有各自的使用规则和偏好,所以使用C++不同的部分我们要适应不同的规则。...

2018-10-09 21:19:02 107

原创 Qt学习之发布

Qt发布的方式非常简单,只要简单的几句话就能解决。1.在release模式下编译工程。2.将release文件夹下的可执行文件.exe复制到我们想要的文件夹下例如C:\User\myname\Desktop\pp。3.打开QtCreator自带的Qt命令窗,比如我的是(Qt 5.6.3 32-bit for Desktop (MSVC 2013))。4.然后在上述打开的命令窗里面输入:(...

2018-10-09 16:54:45 110

原创 Qt问题之无法打开发布文件夹里面的exe但是在qtcreattor里面能够运行

最近写了一个Qt的控制界面,但是在Qt Creator运行没有问题,但是发布出来和直接在release文件夹里面运行exe却点击没反应。这个问题苦恼我很久,网上大多数是说差dll,但是我是不差dll的。最后发现是因为,我在Qt里面写了一个存储类,但是release文件夹里面没有dat文件,所以初始化读取dat文件失败所以一直无法运行,后来我将dat文件放入发布文件夹和release文件夹,之后...

2018-10-08 19:06:42 1150

原创 形态学之凸壳

到目前为止我还没有应用到凸壳,但是凸壳算法倒是接触过几个,这里简单写写形态学凸壳。凸壳的公式如下:Xki=(Xk−1⊗Bi)∪Ai=1,2,3,4k=1,2,3...X_k^i=(X_{k-1}\otimes B^i)\cup A \quad i=1,2,3,4 \quad k=1,2,3...Xki​=(Xk−1​⊗Bi)∪Ai=1,2,3,4k=1,2,3...其中X0i=AX_0^i=...

2018-10-07 19:29:00 5345 3

原创 击中与击不中变换

击中与击不中变换是形状检测的一个基本工具,其思路非常简单。公式如下:A⊗B=(A⊖D)∩[Ac⊖(W−D)]A\otimes B=(A\ominus D)\cap [A^c\ominus(W-D)]A⊗B=(A⊖D)∩[Ac⊖(W−D)]其中A是被寻找图像,D是被寻找图形,W为包含D的一个图形。详细解释如下:其中D是我们要在A中寻找的图形,我们首先用D对A进行腐蚀,我们发现能够包含D...

2018-10-06 21:24:13 1757

原创 形态学之连通分量提取

提取公式:Xk=(Xk−1⊕B)∪Ak=1,2,3...X_k=(X_{k-1}\oplus B)\cup A\quad k=1,2,3...Xk​=(Xk−1​⊕B)∪Ak=1,2,3...上述公式与形态学之孔洞填充公式只差一个A补集。实际上他们用的element B也不一样。如上图,X0X_0X0​为全黑图,其中连通部分的一点为白,然后用8连通element对其进行膨胀,这样肯定会过界,...

2018-10-06 20:34:45 5182 2

原创 形态学之孔洞填充

说实话,我第一次看到这只是明白了它的原理,但是对它的作用并不是很了解,在做过一些图像处理后,终于明白了它的重要之处,这里重新将其作复习,并写在这里,方便自己以后复习(不用翻书,翻书真的很麻烦)孔洞填充的公式:Xk=(Xk−1⊕B)∩Ack=1,2,3...X_k=(X_{k-1}\oplus B)\cap A^c \qquad k=1,2,3...Xk​=(Xk−1​⊕B)∩Ack...

2018-10-06 20:00:49 14299 6

原创 形态学之边界提取

边界提取的算法如下:β(A)=A−(A⊖B)\beta(A)=A-(A\ominus B)β(A)=A−(A⊖B)其中B是一个适当的结果元如上所示,该公式是一个很明显的边界提出公式,B对A做腐蚀,将A的边界进行腐蚀,而A减去腐蚀后的结果就是被腐蚀的部分,即边界,其中边界的粗细取决于element B的大小。以上。...

2018-10-06 19:37:06 2774

原创 开操作与闭操作

开操作和闭操作实际就是腐蚀和膨胀的一个组合运算,如下:开操作:A∘B=(A⊖B)⊕BA\circ B=(A\ominus B)\oplus BA∘B=(A⊖B)⊕B闭操作:A∙B=(A⊕B)⊖BA\bullet B=(A\oplus B)\ominus BA∙B=(A⊕B)⊖B开操作:先用B对A进行腐蚀得到AA,然后再用B对AA进行膨胀得到C。注意了:先用B对A进行腐蚀,再用B对其结果进行...

2018-10-06 19:10:39 15749 2

原创 腐蚀和膨胀

腐蚀和膨胀是二值图像形态学操作的最基础的方法,我们将在这里对其进行基础的介绍。1.腐蚀首先说腐蚀,腐蚀是缩小图像,去除小沟壑细节的一种操作,腐蚀的概念很好理解,但是公式看起来却很麻烦,我这里主要说概念。腐蚀操作需要两个元素,一个待处理对象A,一个element B,B对A的腐蚀得到的结果是由A中能够包含整个B的像素点所组成的,如下图所示:其中比较关键的是B的锚点,就是B的锚点在A中扫描时...

2018-10-06 18:44:05 9406

原创 qt不同ui类之间的数据互访

由于控件处于不同的ui类中,且控件在ui类中是私有的,所以不能够直接进行互访,解决的办法有两个:1.相互指针引用,即在每个类中定义另一个类的指针并引用需要访问的那个类的指针。2.利用信号与槽的机制,将所需要的数据当做信号的参数传递到槽函数中。...

2018-10-05 16:42:41 2438

原创 打开一个Qt工程文件无法debug一直显示lauching Debugger

之前打开一个外来的工程文件,发现无法debug,窗口一直显示lauching Debugger就是无法开始。后来发现是因为build directory没有改边,release和debug文件被放到了默认的工程文件夹里面去了。只要改变build directory到外来工程所在文件夹,然后从新qmake和build即可。...

2018-10-05 16:38:55 5332 1

空空如也

空空如也

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

TA关注的人

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