- 博客(29)
- 资源 (17)
- 收藏
- 关注
原创 设计模式之观察者模式
一、模式动机 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。二、模式定义 观察者模式(Observer Pattern)定义了对象之间的一对多依赖
2017-04-30 21:30:38 350
原创 设计模式之策略模式
一、模式动机 完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。二、模式定义 策略模式(Strategy Pattern)定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 策略模式包含三个角色:环境类在解决某个问题时可以采用多种策略,在环境类中维护一个对抽象策略类的引用实
2017-04-30 17:06:33 456
原创 ITK图像读写及显示
ITK图像读写机制用户层面:itkImageFileReader(读) itkImageFileWriter(写) 内部实现:由内部ImageIO对象具体负责图像文件读写操作,该对象通过对象工厂根据用户输入文件类型生成相应的ImageIO对象 优点使用方便,用户无须关注内部实现细节 扩展方便,扩展支持新的图像读取而无须修改用户接口,只需添加相应的工厂类和IO类ITK图像读写类图:
2017-04-23 23:11:10 7970 7
原创 Error:cannot open source file "itkImageToVTKImageFilter.h"
在进行VTK和ITK混合编程时,遇到无法打开itkImageToVTKImageFilter.h源文件错误。网上查了下,有些建议在自己的工程里新建该文件,也许能解决,但没有从根本上解决。科学上网找到解决方法:用CMake编译ITK时,选中Module_ITKVtkGlue项。如下图所示:
2017-04-23 22:26:01 2755 4
原创 CMake创建ITK程序
一、创建ITK项目步骤● 创建一个干净的新目录 ● 编写一个CMakeLists.txt文件 ● 编写代码文件(如.cxx) ● 用CMake配置 ● 编译 ● 运行二、示例说明CMakeLists.txt文件代码如下:CMAKE_MINIMUM_REQUIRED(VERSION 2.8)PROJECT(HelloWorld)FIND_PACKAGE(ITK REQ
2017-04-23 16:57:18 3368 1
原创 ITK的编译安装(VS2013)
1、准备工作1)安装VS2013 2)下载CMake3.8.0(www.cmake.com) 3) 下载VTK相关包(www.vtk.org) InsightToolkit-4.11.0.zip (源码包,包含了ITK所有的核心源代码以及相关的示例程序。) InsightData-4.11.0.zip(数据包,包含了ITK自带的示例或测
2017-04-23 11:42:28 9986 10
原创 VTK基本概念之光照
光照 物体的光照属性主要包括环境光系数、漫反射光系数、镜反射光系数和镜面指数四个,分别用方法SetAmbient(),SetDiffuse(),SetSpecular()和SetSpecularPower()进行设置。 - 环境光系数表示各种光线照射到物体材质上,经过很多次发射后最终在环境中的光线强度。 - 漫反射光系数表示光线照射到物体材质上,经过漫反射后形成的光线强度。 -
2017-04-22 23:09:58 4579
原创 VTK基本概念之坐标系统
坐标系统 在实际开发中,必须理解不同坐标系统之间的关系。计算机图形学里常用的四种坐标系:Model坐标系、Word坐标系、View坐标系和Display坐标系统,转换关系如下图所示。 VTK支持多种不同类型的坐标系统。类vtkCoordinate可以在不同的坐标系统进行变换,VTK支持的坐标系统如下:不同坐标系介绍Model坐标系统 Model坐标系统是定义模型时所用采用的坐标系统,通
2017-04-08 20:48:42 9694
原创 VTK基本概念之灯光
灯光 vtkLight可以分为位置灯光(Position Light)和方向灯光(Direction Light)。位置灯光是光源位置在渲染场景中的某个位置,可以指定灯光的衰减值、锥角等;方向灯光即光源在无穷远,可以认为光线是平行的,比如自然界中的太阳光。光源的位置和焦点的连线定义为光线的方向,默认的vtkLight为方向灯光。 Render里可以有多个灯光,用renderer->AddLi
2017-04-08 20:29:30 1463
原创 VTK基本概念之VTK智能指针
1、概念 如果很多对象有相同的值,在程序里没有必要将这个值存储多次。更好的办法是让所有的对象共享这个值。这么做不但节省内存,而且可以是程序运行得更快,因为不需要构造和析构这个值得副本。引用计数就是这样的一个技巧,它允许多个有相同值的对象共享这个值。 引用计数是个简单的垃圾回收体系,只要其他对象引用某对象(记为对象O),对象O就会增加一个引用计数,当最后引用对象O的对象移除,O对象就会自动析构
2017-04-08 20:05:51 1496
原创 VTK报错Error: no override found for
报错描述:用VS2013直接建立一个Qt和VTK的工程,程序 和配置都没有问题,但是编译后一运行就出如下图的报错。Error: no override found for “xxx”,xxx表示可能是vtk的任意一个类。解决方法:在包含主函数的文件里,加入#include "vtkAutoInit.h"VTK_MODULE_INIT(vtkRenderingOpenGL2);分析:如果你用CM
2017-04-04 20:33:04 1538 1
原创 VTK图像处理之vtkImageReslice
三维图像切面提取切片(Slice)或切面是三维图像比较常用的概念,尤其在医学图像中。通过提取切面可以方便地浏览和分析图像内部组织结构。VTK中vtkImageReSlice类可以实现图像切面的提取。在实际开发中,四视图中冠状视面、矢状面和横断面(显示过图像内部一点且平行于XY、YZ、XZ平面的平面),需要用到此类。示例说明CMakeLists.txt文件代码如下:CMAKE_MINIMUM_REQU
2017-04-04 20:00:25 13508 12
原创 图形处理之抽取轮廓
等值面(线) 等值面(线)提取是一种常用的可视化技术。在医学图像处理中,由于CT、MRI等图像分辨率越来越高,虽然体绘制技术可以清晰得对数据内部结构进行可视化,但是其计算量和效率却制约了其使用。此时可以通过等值面提取技术,仅提取感兴趣的一个或多个组织轮廓,并生成网格模型以供后续的处理和显示。 vtk中的等值面提取算法多基于Marching Cubes算法来实现。vtkContourFilte
2017-04-04 17:11:41 7200 4
原创 体绘制之体绘制管线
体绘制体绘制,又称作三维重建,是一种直接利用体数据来生成二维图像的绘制技术。与面绘制不同,体绘制技术不需要提取体数据内部的等值面,它是一个对三维体数据进行采样和合成的过程。示例说明CMakeLists.txt文件代码如下:CMAKE_MINIMUM_REQUIRED(VERSION 2.6)PROJECT(VolumeRendering)FIND_PACKAGE(VTK REQUIRED)IN
2017-04-04 16:28:02 2356 2
原创 图形处理之封闭性检测
本文介绍VTK中封闭性检测。基本概念 介绍封闭性检测之前,介绍一些基本概念。如果一个网格模型中,一条边只被一个单元包含,那么这条边就是边界边,而边界上的点则为边界点。如果一个模型中含有边界边,则说明该模型不是封闭的,否则是封闭的。vtkFeatureEdgesvtkFeatureEdges是一个非常重要的类,该类能够提取多边形网格模型中四种类型的边。 1. 边界边。 2. 非流形边。被
2017-04-04 15:11:02 2714
原创 VTK图形处理之vtkTriangleFilter
本文介绍vtkTriangleFilter。 vtkTriangleFilter可以实现多边形网格数据向三角形网格数据的转换。为了方便直观看出转换前后的变化,我们用网格方式显示数据模型。示例说明CMakeLists.txt文件代码如下:CMAKE_MINIMUM_REQUIRED(VERSION 2.6)PROJECT( vtkTriangleFilter ) FIND_PACKAGE(
2017-04-04 11:27:02 6072
原创 VTk显示样式设置
显示样式 在vtk中,显示样式是通过vtkProperty来控制的。这里介绍三种基本的属性设置方式:点方式,网格方式和面方式。其设置方法为actor->GetProperty()->SetRepresentationToPoints()actor->GetProperty()->SetRepresentationToWireframe()actor->GetProperty()->SetRe
2017-04-04 11:15:16 3669 1
原创 VTK图像处理之vtkImageMapToColors
图像彩色映射 图像彩色映射的原理是:先生成一个颜色查询表,然后根据图像像素的一个标量值在颜色查询表中查找对应的颜色,并用新颜色值替代原来的像素值。VTK中以vtkImageMapToColors实现图像彩色映射,以vtkLookUpTable生成颜色查找表。CMakeLists.txt文件代码如下:CMAKE_MINIMUM_REQUIRED(VERSION 2.8)PROJECT(Gray2C
2017-04-03 21:31:18 4524
原创 VTK图像处理之图像数据结构
本文介绍VTK图像数据结构。VTK图像数据结构 数字图像文件内容由两个部分组成:图像头信息和数据。图像头信息定义了图像的基本信息,主要包括原点位置(Origin)、像素间隔(Space)和维数(Dimension)。通过这三个参数即可以确定图像空间位置和大小。图像可以看作空间中的一个规则的网格,网格中的每个最小单元称为像素(二维)或体素(三维),网格在每个方向上的像素或体素个数即为图像在该方向的
2017-04-03 20:22:21 1950
原创 VTK医疗方面的基本概念
本文介绍使用VTK医疗方面的一些基本概念。1、窗宽窗位 窗宽是图像显示的灰度范围。一般显示器的灰度范围为256级,而医学图像的灰度范围则远远大于该范围,因此通过显示器显示时不能显示所有灰度级,需要使用窗宽来定义欲显示的灰度范围。当灰度值高于该范围的最大值时,均以白影显示;当低于该范围时,均以黑色显示。 窗位是窗宽的中心位置。同样的窗宽,会根据窗位的位置变化来显示不同的组织结构。
2017-04-03 16:32:43 1349
原创 VTK数据的读写
本文介绍VTK中数据模型的读写。模型数据获取 VTK应用程序所需的数据可以通过两种途径获取:第一种是生成模型,然后处理这些模型数据(如由类vtkCylinderSource生成的多边形数据);第二种是读取相关的数据文件,然后处理这些读入的数据(如vtkBMPReader读取的BMP图像)。Reader与Writer类 VTK针对不同的数据类型,提供了不同的读写类。1、数据读写VTK的Reade
2017-04-03 15:31:30 5030 1
原创 VTK纹理映射
本文介绍VTK中纹理映射。纹理映射 纹理映射是创建逼真效果的强大的图形工具,其原理是渲染时把二维的图像“贴”到物体的表面啥昂,根据二维图像渲染出丰富多彩的效果,所有也叫纹理贴图。纹理映射需要三个要素:带贴图的表面、纹理映射以及纹理坐标。其中纹理映射在VTK中就是vtkImageData的数据集,而纹理坐标则用于控制纹理图在表面的位置,作为被贴对象数据的属性。vtkSmartPointer<vtk
2017-04-03 14:43:02 4973 3
原创 VTK纹理映射之vtkTransformTextureCoods
本文介绍vtkTransformTextureCoods类。纹理坐标系 在《VTK纹理映射》文中,我们其实用的都是2D纹理,使用一张图片。它的坐标系是(s,t),即前面提到的u-v。也可以有3D纹理,它被认为是多个2D Texture。,坐标系s-t-r。vtkTransformTextureCoods vtkTransformTextureCoods类用来变换纹理坐标的,包括缩放、旋转和平移
2017-04-03 14:28:20 4369 10
原创 VTK基本概念之主要对象
本文以一个显示柱体的vtk程序介绍vtk编程中的主要对象。显示柱体的VTK程序CMakeLists.txt文件代码如下:CMAKE_MINIMUM_REQUIRED(VERSION 2.8)PROJECT(RenderCylinder)FIND_PACKAGE(VTK REQUIRED)INCLUDE(${VTK_USE_FILE})ADD_EXECUTABLE(RenderCylinde
2017-04-02 22:14:20 1799 1
原创 CMake创建VTK程序
如何在VS2013中创建VTK程序a、直接创建 利用CMake中CMAKE_INSTALL_PREFIX选项所指定的目录里的文件(头文件、库文件等)直接用VS2013创建。需要进行下面设置 Project->***Properties…->C/C++->General->Additional Include Directories Project->***Prope
2017-04-02 19:51:49 5009
原创 VTK编译的一些报错
1、error MSB6006:”cmd.exe” exited with code 1.错误描述如下图所示:在VS2013 Output 发现报错原因:28> CMake Error at F:/vtk7.0/VTKsrc/CMake/ExternalData.cmake:1005 (message): 28> Object MD5=b7d4fa1943ca47ef537e6847886
2017-04-02 15:50:13 5058 6
原创 VTK的编译安装(VS2013)
本文介绍用CMake和VS2013来编译安装VTK。1、准备工作安装VS2013下载CMake3.8.0(www.cmake.com)下载VTK相关包(www.vtk.org)vtk-7.1.0.zip (源码包,包含了VTK所有的核心源代码以及相关的示例程序。)vtkdata-7.1.0.zip(数据包,包含了VTK自带的示例或测试程序运行时需要用到的数据。)2、建立文件夹建立根文件夹,
2017-04-02 15:28:24 5090 3
原创 VTK概述
本文介绍什么是VTK和VTK的学习资源。#1、VTK是什么 可视化工具包(Visualization Toolkit, VTK)是一个开源、跨平台、可自由获取、支持并行处理的图形应用函数库。 VTK包含一个C++类库,众多的编程语言接口,包括Tcl/Tk、Java、Python,在三维函数库OpnGL的基础上采用面向对象的设计方法发展起来的,将可视化开发过程中会经常遇到的细节屏
2017-04-02 15:03:14 9054 1
原创 VS2013+QT(64位)环境搭建
本文介绍用VS2013集成Qt5的环境配置。一、安装软件VS:VS2013(Qt64位只支持它) Qt:qt-opensource-windows-x86-msvc2013_64-5.6.0.exe VS Qt插件:qt-vs-addin-1.2.5.exe二、配置环境打开VS2013,配置Qt。菜单栏->QT5->Qt Options: 对话框上选择Add 在新的对话框上,Version
2017-04-02 10:45:59 7551
Debugging Tools for Windows
2017-09-03
Microsoft Visual C++ 2010 Redistributeble
2016-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人