自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沈春旭的博客

优秀是一种习惯

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

原创 OpenGL编程指南1:OpenGL简介

1.什么是OpenGL?OpenGL对场景中的图像进行渲染时所执行的主要图形操作:根据几何图元创建形状,从而建立物体的数字描述。(OpenGL把点、直线、多边形和位图作为基本的图元)。在三维空间中排列物体,并选择观察复合场景的有利视角。计算所有物体的颜色。颜色可以有应用程序明确指定,可以根据特定的光照条件确定,也可以通过把纹理贴到物体的表面而获得,或者是上述三种的混合产物。

2017-02-26 21:02:45 1061

原创 无法解析的外部符号 __imp____glutInitWithExit@12

1.问题描述今天运行程序碰到链接异常如下:1>test.obj : error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用1>test.obj : error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithEx

2017-02-25 21:14:20 4172

原创 Qt修炼手册5_文件输入输出

Qt使用QFile类输入和输出文件。 QFile通过I/0设备读写二进制文作、 文本文件和资源文内容。Qt还提供QTextStream和QDataStream类, 它们能通过数据流有效读写数据。 换言之, 这两个类不直接将数掘记录到文件, 而是通过更为简単的管道等界面读写数据 。1.QIODevice类的枚举类型QFile类继承自QFileDevice类。QFileDivice

2017-02-25 17:22:22 1718

原创 Qt修炼手册4_信号与槽

1.前言为了处理个体间的通信事件,Qt提供了信号与槽。信号与槽不仅可以处理GUI上发生的事件,也可以实现个体间的数据通信。值得深入把握。2.信号与槽信号与槽是一种用于对象间通信的机制。为了用户在GUI程序点击按钮控件时可运行指定函数,信号与槽提供可运行指定函数的框架。处理多种用户事件前,信号和槽提供多种回调(Callback)函数。Qt提供的所有控件拥有多种预设信号。例

2017-02-25 11:05:05 762

原创 基于暗通道优先算法的去雾应用Matlab

理论见博客:http://www.cnblogs.com/changkaizhao/p/3266798.htmlhttp://www.cnblogs.com/Imageshop/p/3281703.html由于课程作业的需要,仅仅进行简单研究。1.主函数clc;clear all;close all;J = imread('4.jpg');J = doubl

2017-02-24 22:53:41 20676 11

原创 64bit win7+VS2013+opencv2.4.9配置

1.下载安装从OpenCV官网(http://opencv.org/downloads.html),下载安装文件,然后双击安装包,类似于解压,跟着步骤,就安装到自己想要安装的位置。2.环境变量配置安装完成后,就先设置下系统变量。1、右键“我的电脑”2、选择“属性”3、选择左上角“高级系统设置”4、在“高级”下面“环境变量”5、首先在用户变量下,添加一

2017-02-22 22:12:45 987

原创 Qt修炼手册3_VS建立的Qt工程(或项目)生成pro文件

利用VS2008建立的Qt工程(或项目)要使用Qt Creator开发时,需要生成pro文件。下面介绍该过程。1.右击工程(不是解决方案)名称,点击Create basic .Pro file点击OK:2.点击保存3.工程目录下可以看到生成的pro文件

2017-02-21 22:13:20 1735

原创 VS2010 + OpenGL 及 第一个实例

1.OpenGL开发环境简介基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:\WINDOWS\SYSTEM32目录下(这里假定用户将Windows NT安装在C盘上)。OpenGL的图形库函数封装在动态链接库OpenGL32.DLL中,开发基于OpenGL的应用程序,必须先了解OpenGL

2017-02-20 19:32:03 1958

原创 VTK修炼之道83:Pipeline管线执行模型

1.管线执行模性请求是VTK执行管线的一个基本操作,一个管线执行模型由多个请求共同完成。管线建立完毕,当显示调用一个Filter的Update()函数时,该Filter的vtkExecutive子类执行对象会产生一系列请求,并在管线中传递。例如,一个Writer对象执行Update()时,会调用this->GetExecutive()->Update()来更新管线。此时,执行对象会

2017-02-12 22:55:33 3456 1

原创 VTK修炼之道82:VTK管线机制_信息对象类VTKInformation

1.VTK管线机制VTK中通过管线机制来实现组合各种算法处理数据。每一种算法是一个Filter,多个Filter连接在一起形成VTK管线。每个Filter可以分为两个组成部分:一个是算法对象,继承自vtkAlgrithm,主要负责处理输入的数据和信息;另一个是执行对象,继承自vtkExecute(),负责通知算法对象何时运行以及传递需要处理的数据和信息。Filter类继承自vtkAlgri

2017-02-12 20:25:05 4569

原创 VTK修炼之道81:VTK开发基础_vtkObject类深入分析

1.前言相比于vtkObjectBase,我们接触更多的是vtkObject类。vtkObjectBase类主要实现了引用计数,因此vtkObject及其相关子类都继承了该特性。与此同时,vtkObject中实现了一个在VTK中是用非常广泛的观察者/命令模式,该机制可以方便地处理消息响应,例如处理鼠标消息、键盘消息、进度条消息等,VTK的Widget中大量地使用了该机制进行消息

2017-02-11 20:04:57 2681 1

原创 VTK修炼之道80:VTK开发基础_智能指针与引用计数

1.引用计数VTK经过多年的开发与维护,已经形成了一套稳定的框架和开发规则。因此,了解这些规则和框架是定制VTK类的基础,这其中用到了大量面向对象的设计模式,例如对象工程模式、观察者/命令模式;还有就是当下非常流行的引用计数与智能指针等高级内存管理等。内存管理在大型的工程中是非常重要的内容,如果不能有效地管理内存,将严重影响到应用程序的执行效率,甚至可能造成程序崩溃。之前学习C++

2017-02-10 23:45:22 2915

原创 VTK修炼之道79:交互与拾取_单位拾取

1.单位拾取示例代码:#include VTK_MODULE_INIT(vtkRenderingOpenGL)VTK_MODULE_INIT(vtkInteractionStyle)VTK_MODULE_INIT(vtkRenderingFreeType)#include #include #include #include #include #include

2017-02-10 12:07:51 4706 1

原创 VTK修炼之道78:交互与拾取_点拾取

1.拾取选择拾取是人机交互过程的一个重要功能。一个最经典的例子就是,在玩3D游戏时,场景中可能会存在多个角色,有时需要用鼠标来选择所要控制的角色,这就要用到拾取功能。另外,在某些三维图形的编辑软件中,经常需要编辑其中的一个点、一个面片或者一个局部区域,这也需要通过拾取功能来完成。VTK中定义了多个拾取功能的类,具体的继承关系如下:VTK中所有的拾取类都继承自vt

2017-02-09 23:31:04 13251 8

原创 VTK修炼之道77:交互部件_分割/配准类Widget与其他Widget

1.分割/配准交互部件图像分割与配准是数字图像处理技术两大主要的应用领域,特别是在医学图像处理中。著名的医学图像分割与配准工具包ITK(Insight Segmentation & Registration Toolkit)的重要应用领域就是图像分割与配准。ITK实现了许多经典的分割、配准算法,但不提供可视化功能,因此,在应用中一般都会和VTK一起用。由VTK负责分割、配准等数据处

2017-02-09 21:21:36 3594 1

原创 VTK修炼之道76:交互部件_标注类Widget的应用

1.标注类Widget在可视化程序中,经常会对某个对象做一些标注说明,比如,在医学图像诊断中,常常会手动标注出被诊断为肿瘤的区域或者其他病变区域,并用文字进行标注。VTK中,与标注相关的Widget如下表所示:vtkTextWidget:在渲染场景中生成一串标识文本,可以随意调整该文本在渲染场景中的位置,缩放其大小等。vtkScalarBarWidget:根据输

2017-02-09 20:30:59 8096 4

原创 VTK修炼之道75:交互部件_测量类Widget的应用

1.与测量类相关的主要Widget与测量类相关的主要Widget如下:vtkDistanceWidget:用于在二维平面上测量两点之间的距离。vtkAngleWidget:用于在平面的角度测量。vtkBiDimensionalWidget:用于测量二维平面上任意两个正交方向的轴长。2.创建用于测量距离的Widget应用实例先复习一下创建Widge

2017-02-09 14:17:17 5629 2

原创 VTK修炼之道74:交互部件_Widget的创建

1.创建Widget交互的步骤虽然每个Widget都提供了不同的功能以及不同的API,但是,Widget的创建以及使用基本都是类似的。创建Widget的一般步骤如下:1.实例化Widget;2.指定渲染窗口交互器。Widget可以通过它来监听用户事件。3.必要时使用观察者/命令模式创建回调函数。与widget交互时,它会调用一些通用的VTK事件(94个事件列表),如Star

2017-02-09 00:03:58 3367

原创 VTK修炼之道73:交互部件_Widget应用综述

1.交互器样式遇到的难题交互器样式(如vtkInteractorStyleImage)主要是根据不同的键盘、鼠标等消息来控制相机(vtkCamera)/Actor等相关参数,从而达到了交互的目的!然而,在渲染场景中,这些交互器样式是没有表达实体的。也就是说,在交互之前,我们(用户)必须知道那些键盘消息或者鼠标消息是与哪些事件绑定的,在整个交互过程中,用户“看不到”交互器样式长什么样

2017-02-08 21:49:11 4200

原创 VTK修炼之道71:交互与Widget_观察者/命令模式

1.前言一个强大的可视化系统不仅需要强大的数据处理能力,也需要方便易用的交互功能。图形处理软件ParaView(hhttp://www.paraview.org)、德国癌症研究中心研发的MITK(http://www.mitk.org)等开源软件系统都提供了强大的交互功能,作为ParaView、MITK等软件构件基础的VTK同样也提供了各种各样的交互功能。VTK的交互除了可以监听来自鼠

2017-02-08 13:52:11 6280

原创 VTK修炼之道70:体绘制讨论_光照&阴影、VTKLODProp3D

1.光照与阴影通过VTKVolumeProperty可以设置体绘制阴影效果(Shading)。阴影效果主要受环境光系数、散射光系数、反射光系数和高光强度四个参数影响。vtkVolumeProperty::SetAmbient()设置环境光系数vtkVolumeProperty::SetDiffuse()设置散射光系数vtkVolumeProperty::SetSpecula

2017-02-07 23:44:51 6221 1

原创 VTK修炼之道69:体绘制讨论_颜色传输函数

1.颜色传输函数颜色传输函数与不透明度传输函数的使用类似,二者的不同之处在于颜色传输函数是将一个标量值映射为颜色值。这个颜色值可以是RGB值,也可以是HSV值。VTK颜色传输函数采用VTKColorTransferFunction类实现,其函数为:int AddRGBPoint(double x,double r,double g, double b);int AddHSVP

2017-02-07 21:07:05 7629

原创 VTK修炼之道68:体绘制讨论_梯度不透明度传输函数

1.梯度不透明度函数梯度不透明度函数是将梯度模值映射为一个不透明度乘子,从而增强过渡区域的显示效果。该函数也是使用vtkPiecewiseFunction类。例如,在不同材料的临界区域,如空气到软组织,或者软组织到骨头的临界区,梯度值会比较大,而材料的内部梯度值则会相对比较小。vtkVolumeProperty中通过如下函数设置和获取梯度不透明度函数:void SetGra

2017-02-07 20:12:51 5720

原创 VTK修炼之道67:体绘制讨论_不透明度传输函数

1.vtkVolumevtkVolume类似于几何渲染中的vtkActor,用于表示渲染场景中的对象。除了存储基本变换信息(平移、旋转、缩放等),其内部还存储了两个重要对象。这两个对象分别是vtkAbstractVolumeMapper对象和vtkVolumeProperty对象。1.1 void SetMapper(vtkAbstractVolumeMapper* mapper)

2017-02-07 19:11:04 6706 1

原创 VTK修炼之道66:体绘制裁剪_Cripping技术

1.基于Clipping的体绘制裁剪技术Clipping技术支持VTKImageData和VTKUntructuredGrid数据类型。该功能由vtkAbstractMapper3D类提供,对于那些使用基于OpenGL的硬件裁剪技术的Mapper类,如vtkPolyDataMapper、vtkVolumeTextureMapper2D、VTKProjectedTetrahedraMappe

2017-02-07 14:21:17 3572 1

原创 VTK修炼之道65:体绘制裁剪_Cropping技术

1.裁剪对于一些体积比较大,结构比较复杂的体数据进行体绘制的渲染效果难以展示其内部细节,需要用到裁剪技术来渲染部分数据。vtkVolumeMapper类中提供了两种裁剪技术,分别为Cropping和Clipping。Cropping技术只支持VTKImageData数据的裁剪。该方法在每个坐标轴上定义两个裁剪面,共有6个裁剪面(xmin,xmax,ymin,ymax,zmin,zmax

2017-02-07 13:51:19 5357 2

原创 VTK修炼之道64:纹理映射体绘制_三维纹理映射

1.三维纹理映射目前市面上的能多先科都是支持三维纹理映射的。利用三维纹理映射,将体数据映射至一组与视图平面平行的多边形,避免了二维纹理映射方法中因为纹理图像的切换造成的瑕疵。VTK中三维纹理映射体绘制方法由vtkVolumeTexture3D类实现,使用方法与二维纹理映射体绘制方法一致。(实时渲染效果真的是非常好)代码如下:#include VTK_MODULE_INIT(v

2017-02-06 23:27:57 6428 10

原创 VTK修炼之道63:纹理映射体绘制_二维纹理映射

1.纹理映射体绘制基于软件实现的光线投影体绘制算法计算量非常大,不利于进行实时渲染。因此,目前体绘制经常使用图形硬件利用纹理映射来加速。其主要原理是将三维体数据作为纹理装载入硬件缓存中,利用硬件来实现插值以及图像合成操作,以提高绘制效率。基于图形硬件三维纹理功能的体绘制技术,主要是利用硬件的三线性过滤插值能力,通过渲染多个与视线垂直的面片来重建整个三维结构。每个面片利用三维纹理来决

2017-02-06 23:03:53 3148

原创 VTK修炼之道62:体绘制_固定点光线投影体绘制与GPU加速光线投影体绘制

1.固定点光线投影算法vtkFixedPointVolumeRayCastMapper是一个较好的vtkVolumeRayCastMapper的替代者。该类能够实现基于Alpha合成的体绘制方法和最大密度投影体绘制方法,能够支持任意类型带的医院或者独立多元数据。例如,当输入为二元独立数据时,第一源数据用于颜色映射,而第二元作为不透明度映射。该类使用了空间跳跃技术来加速体绘制渲染

2017-02-06 21:43:42 6797 13

原创 VTK修炼之道61:体绘制_光线投影+最大密度投影+等值面法

1.vtkVolumeMappervtkVolumeMapper是所有体绘制Mapper类的虚基类,提供接口函数,并由其子类实现具体功能。该类的继承关系如下图所示:应该掌握一些常用的体绘制类。2.光线投射:vtkVolumeRayCastMapper光线投射法是最常用的体绘制方法。它是一种基于图像序列的直接体绘制方法。光线投影法的基本原理是从投影图像平面

2017-02-06 20:57:39 8432 1

原创 VTK修炼之道60:体绘制_体绘制管线&图形渲染管线

1.几何渲染与体绘制1.1 几何渲染前面练习的渲染技术都是几何渲染技术。所谓的几何渲染技术,就是通过绘制几何图元(顶点、线段、面片等)来渲染数据,例如:绘制图像需要在空间中建立一个四边形图元,然后以纹理映射的方式将该图像贴图到该图元上进行渲染;而三维模型的绘制通常会分解为一系列的多边形面片进行绘制。这种通过生成中间几何图元来进行渲染的方法称为几何渲染。几何渲染的速度比较快,但是

2017-02-06 15:07:43 8886 2

原创 VTK修炼之道59:图形基本操作进阶_纹理映射

1.纹理映射纹理映射是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。纹理生成过程实质上是将所定义的

2017-02-05 23:30:59 3025 2

原创 VTK修炼之道58:图形基本操作进阶_点云配准技术(迭代最近点ICP算法)

1.Iterative Closest Points算法点云数据配准最经典的方法是迭代最近点算法(Iterative Closest Points,ICP)。ICP算法是一个迭代的过程,每次迭代中对于源数据点P找到目标点集Q中的最近点,然后给予最小二乘原理求解当前的变换矩阵T。通过不断迭代迭代直至收敛,即完成了点集的配准。1.1 基本原理ICP算法是大多数点云配准算法的心, 它

2017-02-05 21:49:35 7432 3

原创 VTK修炼之道57:图形基本操作进阶_点云配准技术(LandMark标记点算法和坐标系显示方法)

1.点云配准在计算机逆向工程中,通过三维扫描等实物数字化技术可以获取各种点云数据。但是受到测量环境和设备的影响,再一次测量的情况下,难以获取实物整体的点云数据,因此需要多次从不同角度进行测量。但不同的测量数据之间可能会存在平移错误或旋转错位等问题。这就需要使用点云配准技术来对测量点云数据进行局部配准和整合,以得到完整的模型数据。另外,在外科手术导航技术中,图像标记点技术与人体表面标

2017-02-05 19:22:40 6157 1

原创 VTK修炼之道56:图形基本操作进阶_表面重建技术(三维点云曲面重建)

1.点云重建虽然Delaunay三角剖分算法可以实现网格曲面重建,但是其应用主要在二维剖分,在三维空间网格生成中遇到了问题。因为在三维点云曲面重建中,Delaunay条件不在满足,不仅基于最大最小角判断的对角线交换准则不在成立,而且基于外接圆判据的Delaunay三角化也不能保证网格质量。VTKSurfaceReconstructionFilter则实现了一种隐式曲面重建方法,即将

2017-02-05 14:31:15 18014 23

原创 VTK修炼之道55:图形基本操作进阶_表面重建技术(等值面提取)

1.等值面提取等值面(线)提取是一种常用的可视化技术,常应用于医学、地质、气象等领域。例如,在医学图像处理中,由于CT、MRI等图像分辨率越来越高,虽然体绘制技术可以清晰地对数据内部结构进行可视化,但是其计算量和效率却制约了其使用。此时可通过等值面提取技术,仅提取感兴趣的一个或者几个组织轮廓,并生成网格模型以供后续的处理和研究。根据数据类型的不同,VTK中提供了多个等值面提取类,其

2017-02-05 11:17:45 5785 4

原创 VTK修炼之道54:图形基本操作进阶_表面重建技术(三角剖分)

1.表面重建通过三维扫描仪所获取的实际物体的空间点云数据仅仅表示物体的几何形状,而无法表达其内部的拓扑结构。拓扑结构对于实际图形处理以及可视化具有更重要的意义。因此,这就需要利用表面重建技术奖点云数据转换成面模型,通常为三角网格模型。除此之外,基于图像数据的面绘制技术也是一种应用非常广泛的表面重建技术。2.VTK中实现三角剖分技术三角剖分技术是一种应用非常广泛的

2017-02-04 21:31:46 8978 1

原创 三角剖分算法的数学理解

1.开篇三角剖分是代数拓扑学里最基本的研究方法。 以曲面为例, 我们把曲面剖开成一块块碎片,要求满足下面条件: (1)每块碎片都是曲边三角形; (2)曲面上任何两个这样的曲边三角形,要么不相交,要么恰好相交于一条公共边(不能同时交两条或两条以上的边)拓扑学的一个已知事实告诉我们:任何曲面都存在三角剖分。假设曲面上有一个三角剖分, 我们把所有三角形的顶点总个数记为p(公共顶点

2017-02-04 19:15:38 10210

原创 VTK修炼之道53:图形基本操作进阶_多分辨率策略(模型细化的三种方法)

1.模型细化vtk中实现网格细化的累有vtkLinearSubdivisionFilter、vtkLoopsubdivisionFilter、vtkButterflySubdivisionFilter。这三个类都继承自vtkInterpolatingSubdivisionFilter。具体的类的继承关系图如下图所示:vtkInterpolatingSunvisionFilt

2017-02-04 12:47:08 4682 8

原创 VTK修炼之道52:图形基本操作进阶_多分辨率策略(模型抽取的三种方法)

1.多分辨率处理策略模型抽取(Decimation)和细化(Subdivision)是两个相反的操作,是三角形网格模型多分辨处理中的两个重要操作。使用这两个操作可以在保持模型拓扑结构的同时,得到不同分辨率的网格模型。模型抽取的作用是减少模型中的点数据和单元数据,便于模型的后续处理与交互渲染,这类似于图像数据的降采样。而网格细化则是利用一定的细化规则,在给定的初始网格中插入新的点,从而不

2017-02-04 11:13:19 4542 1

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

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

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关注的人

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