自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

原创 非线性最优化基础 简单易懂理解

一 非线性优化中的基本概念(1). 方向导数:函数在自变量的某个方向上的导数。以一个二元函数为例,自变量有x和y,该函数在某一点方向有(x,y)这个向量组成的无穷多个。(2).梯度:梯度是一个矢量,在这个方向上的方向导数达到最大值。某一点的梯度就是某一点方向导数的最大值,也就是从该点出发函数值变化最剧烈的方向(梯度方向代表增加最快的方向,负梯度方向代表减少最快的方向)。梯度的求法即为改点所有方向的...

2018-01-27 12:54:15 5749 2

原创 协方差矩阵与PCA深入原理剖析

一、协方差矩阵一个维度上方差的定义:协方差的定义:(a)协方差就是计算了两个维度之间的相关性,即这个样本的这两个维度之间有没有关系。协方差为0,证明这两个维度之间没有关系,协方差为正,两个正相关,为负则负相关。协方差矩阵的定义:对n个维度,任意两个维度都计算一个协方差,组成矩阵,定义如下直观的对于一个含有x,y,z三个维度的样本,协方差矩阵如下可以看出,对角线表示了样本在在各个维度上的方差。其他元...

2016-09-10 21:29:40 8669 8

原创 CGAL4.9+boost1.59+QT5.6+vs2015 64bit+windows10配置

一、配置QT,只需五部1.下载QT,注意msvc匹配版本号和windows位数进入http://www.qt.io/download-open-source/,选择“Qt Offline Installers”,下载“Qt 5.6.0 for Windows 64-bit (VS 2015, 836 MB)”,下载后的文件名为:qt-opensource-windows-x86-msvc2

2017-04-28 12:55:00 3207

原创 vs2015安装目录下缺少include lib等文件夹无法配置库

今天换了电脑安装完新的vs2015,按照我《opengl究竟该怎么配置》一文中的方法进行配置时,发现C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC文件夹下,并没有include,lib等文件夹。导入一个曾经写过的sln文件,才发现这个solution导入不进来,原因就是缺少一些windows8+以上系统的工具包。只需要按照里面的

2017-04-08 14:00:22 6133 2

原创 模拟退火算法——概率法解全局优化

1、直观介绍模拟退火算法来源于固体退火原理,是一种基于概率的算法,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。它是基于Monte-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟退火算法从某一较高初

2017-03-10 21:57:09 9834 2

转载 双目视觉的框架

摘自:http://blog.csdn.net/onthewaysuccess/article/details/40709745原创为玉米。侵删。一、图像坐标:我想和世界坐标谈谈(A)玉米竭力用轻松具体的描述来讲述双目三维重建中的一些数学问题。希望这样的方式让大家以一个轻松的心态阅读玉米的《计算机视觉学习笔记》双目视觉数学架构系列博客。这个系

2017-02-23 12:46:35 2550

转载 最最基础的最小二乘法优化

1、什么是最小二乘法:最小二乘法(又称最小平方法)是一种数学优化技术。它以误差的平方和为能量函数,通过最小化这个误差平方和,寻找数据的最佳函数匹配。2、通过求一元一次函数的参数来理解最小二乘法优化过程对于一元线性回归模型, 假设从总体中获取了n组观察值(X1,Y1),(X2,Y2), …,(Xn,Yn)。对于平面中的这n个点,可以使用无数条曲线来拟合。要求样本回归函数尽可能好地拟合

2017-02-22 12:19:55 4786

原创 C++和Matlab最常用的编程技能,实现复杂算法的基础

1、文件读写(1)获得文件夹下所有的文件void getFiles(string path, vector& files){//文件句柄  long   hFile = 0;//文件信息  struct _finddata_t fileinfo;string p;if ((hFile = _findfirst(p.assign(path).append("\\*

2017-02-09 11:40:49 578

原创 简简单单应用对极几何

说了简简单单,就直白一点。1、对极几何空间坐标系下,两个相机位置已知,一个点位置已知,连接这三个点,得一个平面,叫极平面epiploar plane空间坐标系下,两个相机参数已知,可以作出两个像平面 image plane极平面上的点与两个像平面的交线叫极限,epipolar lineview1相机坐标原点在view2像平面上的像,view2相机坐标原点在view1像平面上的像

2017-01-05 22:15:21 2102

原创 The program can’t start because MSVCR100.dll is missing from your computer.

(1)去网上找相应的 dll文件,百度google都有。还别说这个网站 http://www.ddooo.com/ 的dll文件相当全啊,我两次都从这里找的(2)复制文件“msvcp120d.dll”到系统目录下。(3)系统目录一般为:C:\WINNT\System32 64位系统为C:\Windows\SysWOW64(4)最后点击开始菜单-->运行-->输入regsvr32

2017-01-01 23:02:54 4466

转载 This function or variable may be unsafe

对项目右键---> 属性 ---> C/C++--->Preprocessor--->Preprocessor Definations添加一行_CRT_SECURE_NO_WARNINGS

2016-12-25 22:11:04 243

原创 test dword ptr [eax],eax ; probe page.

开过大的数组就会这样,两种方法,第一缩小数组,你像int a[3000][3000]就太大了第二修改堆栈保留大小项目->属性->链接器->系统->堆栈保留大小注:这里填的是字节数如果你想把他扩大为2M的话,1024*1024*2 = 2097152

2016-12-17 13:17:19 437

原创 B-Spline

二次B样条基函数三次B样条基函数

2016-11-30 14:42:27 918

原创 使用OpenCv操作&分析像素的基础核心操作

基础知识(1)OpenCV的图像格式一般的图像文件格式使用的是 Unsigned 8bitsCvMat矩阵对应的参数类型就是CV_8UC1,CV_8UC2,CV_8UC3。最后的1、2、3表示通道数最常用的是RGB三通道图像,CV_8UC3而float 是32位的,对应CvMat数据结构参数就是:CV_32FC1,CV_32FC2,CV_32FC3...do

2016-11-30 13:50:10 493

转载 解决VS C++中This function or variable may be unsafe

右击项目属性选择C/C++选择Preprocessor右侧Preprocessor Definitions 点击Edit添加_CRT_SECURE_NO_WARNINGS 保存关闭

2016-11-27 17:38:43 553

原创 相机参数原理深入剖析 与 实际运用

1、相机内参与应用fx、fy、u0、v0只与摄像机内部参数有关,故称矩阵M1为内参数矩阵其中fx= f/dX ,fy = f/dY ,分别称为u轴和v轴上的归一化焦距f是相机的焦距,dX和dY分别表示传感器u轴和v轴上单位像素的尺寸大小,单位为mm/pixel,现代技术下一般二者相等u0和v0则表示的是光学中心,即摄像机光轴与图像平面的交点,通常位于图像中心处,故其值常取分辨率

2016-11-10 15:50:37 8608

转载 四元数 旋转 旋转矩阵 欧拉角互相转换

四元数的作用表达旋转。旋转的表达方式有很多种,有欧拉角,旋转矩阵,轴角,四元数(unit quaternion),unit quaternion是一种表达旋转的方式。不同的旋转表达方式概览(1)欧拉角:欧拉角使用最简单的x,y,z值来分别表示在x,y,z轴上的旋转角度,其取值为0-360(或者0-2pi),一般使用roll,pitch,yaw来表示这些分量的旋转值。

2016-10-25 14:22:09 6324 1

原创 数学小知识汇总

||w||带一个下标2:意思是这个该向量的范数为欧几里得范数,也叫2-范数,就是向量的长度。设w=, ||w||下标2=x1^2+x2^2+x3^2 的开根号。||w||无任何标:省略下标2,因为2范数最常用,同上。||w||上下都有2:意思是二范数的平方

2016-10-22 14:42:37 5196

转载 opengl纹理贴图的模式

OpenGL提供了3种不同的贴图模式:GL_MODULATE,GL_DECAL和GL_BLEND。我们可以调用glTexEnvi函数来设置当前贴图模式glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND);(1)默认情况下,贴图模式是GL_MODULATE,在这种模式下,OpenGL会根据当前的光照系统调整物体的色彩和明

2016-10-21 18:15:26 1106

原创 opengl 光照,材质,BMP纹理贴图的代码模板

BMP纹理贴图:首先把纹理图片,用画图另存为转成BMP格式(24bit-bmp)纹理加载函数://两个纹理对象的编号GLuint tex1;GLuint tex2;int power_of_two(int n){ if (n <= 0) return 0; return (n & (n - 1)) == 0;}/* 函数load_texture* 读取一个BMP

2016-10-20 13:34:26 4704 1

原创 OPENGL究竟怎么配置

每次配置都是自己去网上找啊,真是十分不爽。这次写完,一定要记住了glut.h的头文件引入了glu.h和glu.h,又是平台无关的最常用,因此好多教程只需要配置glut,我们目前主要以配置glut为例。你需要注意什么:从win7开始,OpenGL的头文件更改到windows SDK中,不安装就不能用。这个windows sdk的目录在哪里呢?在我电脑好像是在这里:

2016-10-19 23:03:09 3426

转载 opengl库中gl glu glut glaux的区别

GL GLU GLUT的关系OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库。gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库。gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut是基本的窗口界面,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨

2016-10-19 22:07:30 8267

原创 最大似然估计,最大后验估计,概率相关知识

1、什么是似然函数The likelihood of a set of parameter values, θ, given outcomes x, is equal to the probability of those observed outcomes given those parameter values, that is{\displaystyle {\mathca

2016-09-23 14:26:30 708

原创 最优化理论中的常用背景知识

一、最优化:最优化就是给一个函数f(X),求能使这个函数取得最大值或者最小值的X。对于我们科研中,这个函数肯定是个多维函数了。也就是我们要求一个组值,或者说是求一个向量X={x1,x2,x3,...,xn},使这个函数的值最大。二、可微、可导、连续可微函数:可微函数是指定义域内各点导数都存在的函数。多元函数可微:多元函数各个元的偏导数都存在的函数。在某点可微:一般来

2016-09-22 22:04:34 1411

原创 最优化理论之牛顿法

1、泰勒展开式泰勒展开式是用多项式来近似表示函数在某点周围的情况。对于一个函数在x=a处的展开式,这个展开式在x=a附近对函数的逼近是最精确的,离a越远,这个公式就越不精确。实际函数值和多项式的偏差称为泰勒公式的余项。2、方向导数和偏导数方向导数(directional derivative)的通俗解释是:我们不仅要知道函数在坐标轴方向上的变化率(即偏导数),而且还

2016-09-22 20:25:01 1798

原创 解决Error LNK2019: unresolved external symbol

The problem with your project is that you are using a “C” style exported library in your C++ projects. When the compiler generates mangled names for C++ functions, they are different from unmangled na

2016-09-15 13:53:24 3025

原创 从PCA到数学基础

一、线性代数基本概念的重新理解矩阵:(1)矩阵代表了一种变换,矩阵通过乘法作用于一个N维空间上的点(向量),使他进行旋转与错切变换(2)矩阵代表了一组向量张成的空间,矩阵的每一行是一个向量,列数是每个向量的维度数据如图,这是由二维向量构成的矩阵 [5,6 ; 7,3] 张成的一个平行四边形的二维空间,也可以理解成该矩阵前面有一个单位矩阵,在途中表现为一个单位方块,该矩阵

2016-09-10 16:07:01 457

原创 OPENCV-2.4.11+VS2015最直白有效配制方法 以及 VS配置库的通用方法

最近配置PCL库,OPENCV库,OPENGL库,总结出以下配置库的基本操作准备工作——库的版本选择:win32 or win64:不要看你的电脑,要看开发的程序,如果开发win32程序,就要下载x86版本msvc版本:取决于你选择的编译器,如果采用vs2013,就要采用msvc2013的编译器。msvc就是就是microsoft visual c++的意思,这里顺

2016-08-31 19:14:26 3185

原创 opengl加载obj模型

一、首先来分析obj模型的基本格式1、注释# This file uses centimeters as units for non-parametric coordinates.解析:完全没用的信息,很多时候里面的关键字干扰文件读取,建议直接删除。2、v v -4.155522 -0.314289 -1.723965v -3.829932 -0.314289 -1.723

2016-08-18 23:04:00 1195

原创 opengl坐标与矩阵直白剖析

1、opengl的世界坐标系opengl的默认世界坐标系如图所示2、关于glTranslate*()和glRotate*()含义理解:glTranslate*(a,b,c)从当前位置,沿着向量(a,b,c)平移,不是平移到这个点glRotate*(angle,a,b,c)沿着从(0,0,0)到(a,b,c)的这个向量,进行旋转angle的角度

2016-08-18 21:02:00 533

转载 C++类继承构造函数的语法 & initialization list初始化

C++类继承构造函数的语法 一,父类没有写出构造函数,子类的构造函数可以写成“任何”形式而不用顾及父类的构造函数。例如:父类为Father,子类为Son ,父类中没有写出任何构造函数,则子类中可以不写构造函数,或者构造函数可以写成以下几种:Son(){};Son():Father(){};Son(int a, int b){};Son(int a, int b)

2016-08-14 21:49:25 1035

转载 vs中qt结合opengl搭建

1、QT分为MSVC和MINGW版本,是支持的两种不同的编译器MSVC是指微软的VC编译器,做Windows应用首选,VS中只能集成这个编译器的QT。MingGW是指是Minimalist GNU on Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许在GNU/Linux和Windows平台生成本地的Windows程序而不需要

2016-08-13 15:14:10 2881

转载 VS2013模块对于SAFESEH 映像是不安全的

项目右键->属性->链接器->命令行/SAFESEH:NO 复制到“其它选项(D)框中末尾,然后点击应用

2016-08-13 15:05:00 843

原创 无法启动此程序,因为计算机中丢失QT5Core.dll

背景: QT项目从QTCreator移植到VS2010中时出现这个问题。原因:在Qt Creator中运行时会根据你当前选择的构建套件生成一套自己的环境变量,这套环境变量与当前电脑的环境变量的差别是添加了Qt库的引用路径。所以在Creator中直接点击运行会成功引用Qt的Dll,进而运行成功。当你双击exe直接运行时,或者在VS中运行时,exe因为无法找到相应的Qt动态库所以无

2016-08-13 14:54:14 8010

原创 域操作符::的用法

1、类与类的成员之间声明一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成void A::f(),表示这个f()函数是类A的成员函数。2、作用域作用域简单分为:全局作用域,局部作用域,语句作用域作用域优先级:范围越小优先级越高作用域运算符:"::"如果希望在局部变量的作用域内使用同名的全局

2016-08-09 14:45:56 936

原创 C++命名空间

1、什么是命名空间namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。namespace就是一个名字的空间,是为了避免名字冲突而使用的。在不同的空间里可以使用同一个名字而不会引起名字冲突。它的声明就像声明一个类一样。例:namespace   A  {                              

2016-08-09 13:25:03 496

原创 函数参数与函数作为参数

变量、指针、引用用作函数参数的区别:(1)变量作函数参数,形参要额外开辟内存,形参和实参占用不同的内存。(2)指针类型作函数参数,是将实际参数的地址指针传给形参,操作效率很高。void swapint(int *a,int *b){int temp;temp=*a;a=*b;*b=temp;}(3)形参用该类型的引用,就相当于那个变量,也是属于地址传递,效率高。vo

2016-08-08 22:05:57 3393

转载 &和*

&的用法:(1)取地址,得到变量的指针例如int a=5;int* p = &a;例如 void func(int* a, int* b){ …..}int m=3, n=4;func(&m, &n);(2)声明引用,相当于定义变量别名,定义别名的变量相当于同一个变量,拥有同一个内存空间,例如:int a = 3;int& b = a; //

2016-08-08 21:55:58 246

转载 void的使用

void的用法大概有如下几种:(1)如果函数没有返回值,那么应声明为void类型;(2)如果函数无参数,那么应声明其参数为void;(3)如果函数的参数可以是任意类型指针,那么应声明其参数为void * ;//例如以下,交换任意两个变量:void swap(void* lsh, void* rhs, size_t size){ ......}//有了这样一个函数,那

2016-08-08 21:46:24 1150

java最小生成树动态演示

支持鼠标绘制图输入,可以用鼠标画图,动态演示两种最小生成树算法(prim和dijkstra)的生成过程。

2014-08-10

java飞机大战小游戏

全自己写的一个打飞机的小游戏,初学的水平,希望可以给初学用java做小游戏的朋友们参考。

2014-08-10

空空如也

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

TA关注的人

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