自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沈春旭的博客

优秀是一种习惯

  • 博客(33)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 OpenGL编程指南13:光源移动

模型视图变换移动光源#include static int spin = 0;void init(void){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST);}v

2017-03-30 15:26:25 2193

原创 OpenGL编程指南12:光照_渲染真实球体

1.场景中添加光照的步骤1.定义每个物体的每个顶点的法线向量。这个法向量决定了物体相对于光源的方向。2.创建和选择一个或多个光照,并设置他们的位置。3.创建和选择一种光照模型,它定义了全局环境光的层析以及观察点的有效位置(便于进行光照计算)。4.定义场景中物体的材料属性。2.光照球体及分析#include void init(void){//光照参数初始化

2017-03-30 10:52:40 4181

原创 OpenGL编程指南11:组合运动示例2—创建机器人手臂模型

1.源代码:#include static int shoulder = 0, elbow = 0;void init(void){ glClearColor(0.0,0.0,1.0,0.0); glShadeModel(GL_FLAT);}void display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(1

2017-03-28 15:46:45 2498

原创 OpenGL编程指南10:组合运动示例1—创建太阳系模型

1.程序代码:#include static int year =0, day =0;void init(void){ glClearColor(0.0,0.0,1.0,0.0); //清除背景底色 glShadeModel(GL_FLAT);}void display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f

2017-03-28 14:52:49 1552

原创 OpenGL编程指南9:裁剪平面+glPushMatrix和glPopMatrix矩阵栈顶操作

1.任意裁剪平面Opengl中,除了视景体的立方体裁剪平面之外,另外还可以额外指定多达6个裁剪平面,对视景体做进一步限制。每一个平面都由平面公式定义:Ax+By+Cz+D = 0.裁剪平面的指定通过函数:glClipPlane(GLenum plane,const GLdouble* equation)确定。plane可能值为:GL_CLIP_PLANE0--GL_CLIP_PLANE6。

2017-03-27 10:55:33 1636

原创 OpenGL编程指南8:模型组合变换

1.代码#include void init(void){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_FLAT);}void draw_triangle(void){ glBegin(GL_LINE_LOOP); glVertex2f(0.0, 25.0); glVertex2f(25.0, -25.

2017-03-23 11:24:53 1291

原创 OpenGL编程指南7:视图-

1.前言计算机图形学的要点就是创建三维物体的二维图像(图像必须是二维的,因为他是在平面的屏幕上显示的)。但是,当我们决定怎样在屏幕上绘图时,必须使用三维坐标的方式考虑。为了把一个物体的三维坐标变成屏幕上的像素坐标,需要完成以下三个步骤:变换包括模型、视图和投影操作,这是通过矩阵乘法表示的。这些操作包括:旋转、移动、缩放、反射、正投影和透视投影等。一般情况下,在绘制场景时,需

2017-03-20 12:06:15 1028

原创 贝叶斯决策思想的应用与延伸

1.贝叶斯的应用以下举一些实际例子来说明贝叶斯方法被运用的普遍性,这里主要集中在机器学习方面,因为我不是学经济的,否则还可以找到一堆经济学的例子。1.1 中文分词贝叶斯是机器学习的核心方法之一。比如中文分词领域就用到了贝叶斯。Google 研究员吴军在《数学之美》系列中就有一篇是介绍中文分词的,这里只介绍一下核心的思想,不做赘述,详细请参考吴军的文章。分词问题的描述为:

2017-03-19 17:08:35 3489

原创 基于贝叶斯决策理论的分类器

1.引言模式识别是根据对象特征值将其分类。d个特征组成特征向量x=[x1,···,xd]T,生成d维特征空间,在特征空间一个x称为一个模式样本。Bayes决策理论是用概率统计方法研究决策问题。(1)样本的不确定性:样本从总体中抽取,特征值都是随机变量,在相同条件下重复观测取值不同,故x为随机向量。特征选择的不完善引起的不确定性;测量中有随机噪声存在。

2017-03-19 16:14:36 4804 1

原创 目标跟踪:CamShift算法

1.前言camshift利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的中心位置。camshift的核心步骤仍然是Meanshift,只是在距离相似性度量的基础之上,又增加了图像灰度相似性的度量。两者共同作用,实现了目标的跟踪。2.MeanShift

2017-03-17 22:23:39 25645 14

原创 OpenGL编程指南6:顶点数组

1.前言前面的例子中,我们可以看到,OpenGL需要进行大量的函数调用才能完成对几何图元的渲染。绘制一个20条边的多边形至少需要22个函数调用。首先调用一个glBegin(),然后为每个顶点调用一次函数,最后调用1次glEnd().如果我们还要添加其他的额外信息(如多边形边界标志或表面法线),在每个顶点上还要增加函数调用。这可能会成倍地增加渲染几何物体所需要的函数调用数量。在很多系统中,函

2017-03-16 15:48:13 1869

原创 OpenGL编程指南5:学习绘制不同风格的曲线

1.不同风格曲线绘制#include //宏定义;当定义的宏不能用一行表达完整时,可以用"\"表示下一行继续#define drawOneLine(x1,y1,x2,y2) \ glBegin(GL_LINES);\ glVertex2f((x1),(y1));\ glVertex2f((x2),(y2));\ glEnd();void init(void){

2017-03-14 16:15:03 1293

原创 OpenGL编程指南4:双缓冲实现运行

1.前言绘制一个旋转的方块,主要为了说明glutSwapBuffers()函数的用法。同时也为了学习如何使用GLUT控制输入设备,并打开或关闭空闲处理函数。2.OpenGL编程及程序剖析/**************************************************************** *Rendering a rotating squa

2017-03-13 11:30:50 4919

原创 OpenGL编程指南3:GLUT:OpenGL使用工具库

1.前言我们知道的,OpenGL包含了很多的渲染函数,这些函数的设计目的就是独立与任何窗口系统或操作系统。因此,他并没有包含打开窗口或者从键盘或鼠标读取事件的函数。遗憾的是,如果连最基本的打开窗口的功能都没有,那么编写一个完成的图形程序简直就是天方夜谭!GLUT库正可以弥补这个缺陷。该库可以简化打开窗口、检测输入等任务。此外,由于OpenGL函数仅限于生成简单的几何图元(点、直

2017-03-12 21:26:25 2002

原创 OpenGL编程指南2:环境搭配与第一个实例剖析

1.环境配置1.1 OpenGL与Windows操作系统有什么关系? OpenGL是一种应用程序编程接口(API),也是一种可以对图形硬件设备特性进行访问的软件库。因而事实上,OpenGL其实与显卡的关系更密切一些,而对于支持OpenGL的显卡才能使用OpenGL库。由于OpenGL与显卡(硬件)有关,因而也与操作系统有关,所以Windows是自带OpenGL的,因此Windo

2017-03-12 14:37:43 2787

原创 运动目标检测_帧差法

1.帧差法原理帧差法的实现非常简单:如图可见,由目标运动引起的运动变化区域包括运动目标在前后两帧中的共同位置(图中黑色区域)、在当前帧中新显露出的背景区域和新覆盖的背景区域三部分。数学原理:2.MATLAB仿真与实践%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Author: Zihe

2017-03-09 23:47:07 17560 9

原创 运动目标检测_混合高斯背景建模

1.混合搞死背景建模理论混合高斯背景建模是基于像素样本统计信息的背景表示方法,利用像素在较长时间内大量样本值的概率密度等统计信息(如模式数量、每个模式的均值和标准差)表示背景,然后使用统计差分(如3σ原则)进行目标像素判断,可以对复杂动态背景进行建模,计算量较大。在混合高斯背景模型中,认为像素之间的颜色信息互不相关,对各像素点的处理都是相互独立的。对于视频图像中的每一个像素点,其值在序

2017-03-09 22:09:27 27623 16

原创 Qt修炼手册12_线程同步与线程等待条件

1.同步线程:何为同步?参考百度百科:1.1 线程线程是进程中的一个实体,是被系统独立调度和分配的基本单位。一个进程可以有多个线程,一个线程必须有一个父进程,线程自己不拥有系统资源,只有运行必须的一些数据结构,但它可以与同属一个进程的其他线程共享进程所拥有的全部资源,一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。1.2 多线程由于线程之间的相

2017-03-09 15:29:54 5564 1

原创 Qt修炼手册11_多线程编程和QThread类

1.事件循环学习QT多线程编程之前,有必要先熟悉事件循环的概念。先看一个单线程界面程序的主函数代码:int main(int argc, char* argv[]){  QApplication app(argc, argv);  // 构造主窗口对象并显示  MainWindow w;  w.show();  // 进入事件循环  return app.exe

2017-03-09 10:01:25 3983 1

原创 运动目标检测_单高斯背景建模

1.运动目标背景建模背景建模也称为背景估计,其主要目的是根据当前的背景估计,把对序列图像的运动目标检测问题转化为一个二分类问题,将所有像素划分为背景和运动前景两类,进而对分类结果进行后处理,得到最终检测结果。比较简单的获取背景图像的方法是当场景中无任何运动目标出现时捕获背景图像,但这种方法不能实现自适应,通常仅适应于对场景的短时间监控,不能满足智能监控系统对背景建模的要求。背景减除法的

2017-03-08 21:25:10 20428 8

原创 Qt修炼手册10_QTableWidget控件使用说明及实践

1.QTableWidget类简介QTableWidget是QT对话框设计中常用的显示数据表格的控件。QTableWidget继承于类QTableView,所以在学习QTableWidget之前可以先看一下QTableView,他们两者的区别是:QTableView可以使用自定义的数据模型来显示内容(意味着使用时先要通过setModel来绑定数据源)QTableWidget

2017-03-07 17:55:24 1772

原创 Qt修炼手册9_Ui名字空间及setupUi()原理解读

1.前言用最新的QtCreator选择GUI的应用会产生含有如下文件的工程:1.1 *.pro文件QT += core gui //使用Qt的Core和Gui模块。QT将自己的库函数分为多个模块,最常用的是QtCore, QtGui。如果使用 //其他的模块的话可以添加其他模块。常用的有QtNetwork,QtOpe

2017-03-07 16:04:31 5565

原创 C++中namespace的理解与实践

1.前言namespace中文意思是命名空间或者叫名字空间,传统的C++只有一个全局的namespace,但是由于现在的程序的规模越来越大,程序的分工越来越细,全局作用域变得越来越拥挤,每个人都可能使用相同的名字来实现不同的库,于是程序员在合并程序的时候就会可能出现名字的冲突。namespace引入了复杂性,解决了这个问题。namespace允许像类,对象,函数聚集在一个名字下。本

2017-03-07 14:53:06 600

原创 信号分解:标架、对偶标架、紧标架

1.前言信号分解或信号变换的基本思路是将信号x(t)和一组函数(或向量)做內积,从而得到一组分解系数an。分解(或变换)的目的是研究原始信号中有哪些有哟用的信息,并讨论如何抽取这些有用的信息。我能能够理解,正交基具有很多优点(信息不冗余,对偶基是本身),实际应用中也是最广泛的,可惜的是,在实际工作中,发现并得到一组好的正交基往往是不容易的。正式正交基,或者更广泛地说,分解对研究

2017-03-07 09:16:56 2459

原创 信号分解:双正交、完备性、对偶向量

1.信号分解及完备性设是X由一组向量所张成,即:如果线性独立,我们则称它们为空间中的一组基”。那么信号x可以离散表示如下:若是一组两两互相正交的向量,展式称为x的正交展开。分解系数是在各个基向量上的投影。设向量和向量满足如下双正交关系:那么,我们对原始信号就行投影变换(內积):看看,我们把最关心的分解系数给弄出来了

2017-03-07 00:19:23 7545 1

原创 Qt修炼手册8_常用的容器类QVector和QList

1.前言Qt提供了非常有用的容器类的迭代器类,用于修改、删除、插入和保存数据。本着学习的角度,重点研究了QVector和QList两个类。QT中,具有STL风格的迭代器具有两种数据类型,分别是只读访问模式和读写访问模式。具体见下表:STL风格的迭代器的运行方式是在数组中使用指针。例如,++运算符,*运算符用于返回迭代器的项。2.QList类、QLinkedList类

2017-03-06 20:32:34 1352

原创 分支限界法

1.分支限界法与回溯法(1)求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。 (2)搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。2.分支限界法的基本思想 分支限界法常以广度优先或以最

2017-03-05 17:09:01 936

原创 线性判别分析LDA的数学原理(二)

1.关于PCA和LDA分类对比PCA是无类别信息,不知道样本属于哪个类,用PCA通常对全体数据操作。LDA有类别信息投影到类内间距最小&&类间间距最大。首先我们应该明白这两个算法的原理是不一样的,PCA是选择投影后使得整个数据方差最大的方向来投影,假设就是方差越大,信息量越多,PCA是一种无监督算法,没有类别信息。而LDA是选择投影后使得类内方差小而类间方差大的方向来投影,用到了类

2017-03-05 15:47:21 1891

原创 线性判别分析LDA的数学原理(一)

1.前言 之前我们讨论的PCA、ICA也好,对样本数据来言,可以是没有类别标签y的。回想我们做回归时,如果特征太多,那么会产生不相关特征引入、过度拟合等问题。我们可以使用PCA来降维,但PCA没有将类别标签考虑进去,属于无监督的。再举一个例子,假设我们对一张100*100像素的图片做人脸识别,每个像素是一个特征,那么会有10000个特征,而对应的类别标签y仅仅是0/1值,1代表是人

2017-03-05 15:14:55 2486

原创 主成分分析的数学原理

PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的原理。这篇文章的目的是介绍PCA的基本数学原理。1.数据的向量表示以及降维问题一般情况下,在数据挖掘和机

2017-03-05 00:21:50 4479 2

原创 Qt修炼手册7_图形:用户自定义QGraphicsItem

1.前言Qt中提供的Item未必能够满足需要,因此有必要实现自定义的QGraphicsItem对象。与QPushButton一样,如果发生鼠标事件,那么为了更换被点击按钮的图像,可以使用paint实现用户自定义QGraphicsItem。2.一个简单的实验#include #include "MyItem.h"#include #include #define W

2017-03-02 21:11:49 6287

原创 Qt修炼手册6_图形:图形视图框架

1.前言主要为了学习可以在GUI上有效显示或管理大量图形对象的API,以及进行显示、扩大、缩小等操作。2.图形视图框架(Graphics View Framework)图形视图框架使用BSP树算法。BSP是一种将空间分为两部分的算法,其原理是通过二叉树形态分析大的地形,以构成节点信息,并参照此信息找出要绘制的对象。使用BSP算法的图形视图可以快速发现图形

2017-03-02 11:58:19 1039

原创 Qt修炼手册5_图形:使用QPainter类的图形

1.前言QPainter提供的API在GUI或QImage、QOpenGLPaintDevice、QWidget和QPaintDevice显示图形(线、形状、渐变等)、文本、图像。QPainter为了显示图形,利用基于软件的光栅化(raterizer)显示图形,并可以使用OpenGL和OpenGLES的Back_End系统。基于软件的光栅化通过点扫面显示到屏幕。利用QPaint

2017-03-01 22:03:50 1738

用于特征图/卷积核/响应图可视化的网络

这个是为博客‘非黑盒矣-卷积神经网络的可视化’匹配的已经训练好的网络。 通过该网络和博文中阐述的代码,从而复现实验。

2018-12-18

Python+OpenCV实现Selective Search算法

The code is a Python tutorial for Selective Search using OpenCV 3.3.

2018-10-29

softmax regression测试代码

代码实现了softmax regression。 包含训练代码,测试代码和训练数据。

2018-10-15

logistic逻辑回归配套资源

logistic逻辑回归的配套资源。 里面包括训练代码、测试代码。其中也包括了训练集、测试集。

2018-10-14

英伟达深度神经网络加速库 与 matconvnet配套使用 (v5.1)

CuDNN是专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等。

2018-07-11

21个项目玩转深度学习

《21 个项目玩转深度学习——基于TensorFlow 的实践详解》以实践为导向,深入介绍了深度学习技术和TensorFlow 框架编程内容。 通过本书,读者可以训练自己的图像识别模型、进行目标检测和人脸识别、完成一个风格迁移应用,还可以使用神经网络生成图像和文本,进行时间序列预测、搭建机器翻译引擎,训练机器玩游戏。全书共包含21 个项目,分为深度卷积网络、RNN网络、深度强化学习三部分。读者可以在自己动手实践的过程中找到学习的乐趣,了解算法和编程框架的细节,让学习深度学习算法和TensorFlow 的过程变得轻松和高效。本书代码基于TensorFlow 1.4 及以上版本,并介绍了TensorFlow 中的一些新特性。 本书适合有一定机器学习基础的学生、研究者或从业者阅读,尤其是希望深入研究TensorFlow 和深度学习算法的数据工程师,也适合对人工智能、深度学习感兴趣的在校学生,以及希望进入大数据应用的研究者。

2018-06-15

数学之美完整版

很好的一本书 是清华师兄的大作,将通信领域和语音处理领域应用的数学深入简出的道来

2016-11-10

串口通讯代码

利用C#开发出的串口通讯代码,可以实现对下位机的控制,软件界面简介

2014-06-09

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

TA关注的人

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