
ITK指北
人工智睿
代码是单纯的。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ITK图像读写详解
https://max.book118.com/html/2018/0322/158204784.shtm转载 2020-08-21 20:33:06 · 461 阅读 · 0 评论 -
ITK学习笔记:2.Spatial Objects空间对象(一):基本概念与结构
ITK的空间对象类层次结构为查询、操作和互连物理空间中的对象提供了一致的API。通过对对象的表示进行抽象,以支持用图像以外的数据结构表示对象,支持广泛的医学图像分析研究;下面介绍一些关键的例子:Model-to-image registration.对象的数学实例可以注册到映像,以在映像中定位该对象的实例。使用空间对象,互信息,交叉相关,和图像边界度量可以应用而不需要修改来执行空间对象到图像的配准。Model-to-model registration迭代最近点、地标和表面距离最小化方法可以与原创 2020-07-06 17:29:54 · 1091 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.5containers 容器
这个例子展示了如何使用itk::TreeContainer和相关的TreeIterators。TreeContainer实现了树的概念,并在节点类型上模板化,因此它实际上可以处理任何对象。每个节点应该只有一个父节点,因此树中不存在循环。不会安全检查是否存在循环。首先需要包含相关的头文件:#include <itkTreeContainer.h> #include "itkTreeContainer.h" #include "itkChildTreeIterator.h" #in原创 2020-07-06 15:25:25 · 206 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.4Path路径:itk:: PolylineParametertricPath类的使用
itk:: PolylineParametertricPath类通常用于以简洁的方式表示二维图像分割算法的输出。也可以用于表示n维的任意开闭曲线作为线性分段逼近。#include "itkPolyLineParametricPath.h"//Path通过维度实例化,这里以2d为例const unsigned int Dimension = 2;typedef itk::Image< unsigned char, Dimension > ImageType;typedef it原创 2020-07-01 11:01:07 · 289 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.3Mesh网格(七):访问单元
为了方便访问特定的单元类型,itk::Mesh中内置了一个机制。该机制基于Visitor Pattern。该模式旨在促进遍历共享公共基类的异构对象列表的过程。//使用CellVisitor机制的第一个要求是包含CellInterfaceVisitor头文件#include "itkCellInterfaceVisitor.h"typedef float PixelType; typedef itk::Mesh< PixelType, 3 > MeshType;typedef M原创 2020-07-01 10:26:15 · 238 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.3Mesh网格(六):遍历单元
单元格以指针的方式存储在itk::Mesh中,指针指向通用单元格itk::CellInterface。这意味着只能调用在这个基单元格类上定义的虚方法。为了使用特定于每个单元格类型的方法,必须向下转换为指向单元格的实际类型指针。这可以通过利用允许识别单元格的实际类型的GetType()方法安全地完成。下例,假设建立了一个由一个四面体及其所有边界面定义的网格。也就是四个三角形,六个边和四个顶点。可以使用CellsContainer迭代器访问单元格。迭代器Value()对应于CellType基类的原始原创 2020-07-01 09:08:51 · 275 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.3Mesh网格(五):简化网格的创建
Mesh类是非常通用和灵活的。可以通过itk::AutomaticTopologyMeshSource类,根据我们所添加的单元自动生成一个显性复合体。它包括了所有的边界信息,因此产生的网格可以很容易地遍历。它合并了所有共享的边、顶点和面,因此几何特征不会重复出现。本文展示如何使用AutomaticTopologyMeshSource实例化表示K-Complex的网格。我们将首先从上文中生成相同的四面体,之后我们将添加一个空心的四面体来说明网格源的一些额外特性。首先包含需要的头文件:#incl原创 2020-06-30 15:21:09 · 344 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.3Mesh网格(四):PolyLine的表示方法
折线只包含0维和1维的单元格,它们由itk::VertexCell和itk::LineCell表示。#include "itkMesh.h" #include "itkVertexCell.h" #include "itkLineCell.h"然后定义PixelType并实例化网格类型。注意这个空间的维数是2。typedef float PixelType; typedef itk::Mesh< PixelType, 2 > MeshType;现在可以使用从网格中获取的特征实例原创 2020-06-30 14:42:25 · 264 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.3Mesh网格(三):拓扑和k复形
Mesh类支持形式化拓扑的表示。特别地,k复形的概念可以在网格中正确地表示。k复形是一种拓扑结构,其中对于每一个维数N的单元格,其边界面为维数N−1的单元格也属于该结构。下面演示如何使用网格实例化K-Complex结构。该实例结构由一个四面体、四个三角形面、六个线边和四个顶点组成#include "itkMesh.h" #include "itkVertexCell.h" #include "itkLineCell.h" #include "itkTriangleCell.h" #inc原创 2020-06-30 10:04:26 · 428 阅读 · 2 评论 -
ITK学习笔记:1.Data presentation-1.3Mesh网格(二):自定义mesh
网格的一般概念集成了许多不同的元素。原则上可以为每个这样的元素使用独立的类型。泛型编程中用于指定概念中涉及的许多不同类型的机制称为traits。它们基本上是与当前类交互的所有类型的列表。网格通过三个参数模板化。到目前为止,我们只讨论了两个,即像素类型和维度。第三个参数是一个提供网格所需特征集的类。当省略第三个参数时,使用默认的类。这个默认类是itk::DefaultStaticMeshTraits。如果您想定制网格使用的类型,接下来的方法是修改默认特征,并将它们作为网格类实例化的第三个参数提供。有两种方法原创 2020-06-29 15:54:27 · 416 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.3Mesh网格(一)基操:创建mesh,嵌入cell,管理数据
1.创建网格网格类用于表示空间中的形状。它源于itk::PointSet类,因此继承了与点相关的所有功能以及对与点关联的像素数据的访问。Mesh类也是n维的,这使得它的使用具有很大的灵活性。实际上,Mesh类可以看作是一个点集,其中添加了许多不同维度和形状的单元格(也称为元素)。网格中的单元格使用它们的点标识符根据现有的点定义与PointSet相同,ITK中有静态和动态两种基本的网格样式。第一个用于使用点的数量可预知,并不需要对其修改操作。第二个支持插入和删除点。区分这两种样式的原因是原创 2020-06-25 11:25:37 · 578 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.2PointSet(二)之RGB、Vector、Normal作为像素类型
1.RGB下面的示例说明如何参数化点集来管理特定的像素类型。在本例中,使用RGB类型的像素。第一步是包含itk::RGBPixel和itk::PointSet类的头文件。#include "itkRGBPixel.h" #include "itkPointSet.h"通过选择用于表示每个RGB组件的类型来定义像素类型。typedef itk::RGBPixel< float > PixelType新定义的pixel类型用于实例化PointSet类型,创建一个点集对象原创 2020-06-25 10:06:45 · 261 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.2PointSet(一)点集:创建、获取与访问
1.创建PointSet是一个基本类,旨在以n维空间中一组点的形式表示几何。它是itk::Mesh的基类,提供了操作点集所需的方法。点可以有与之相关的值。这些值的类型是由itk::PointSet类的模板参数定义的。ITK中有两种基本的切入点集交互样式。这些样式分别称为静态样式(static )和动态样式( dynamic)。点集的数量是固定并且不希望改变时用第一种,要增改删则用第二种。#include "itkPointSet.h"//我们必须决定什么类型的值与这些点相关联。//为了使术语与原创 2020-06-24 16:38:10 · 787 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.1Image(二)基操之RGB、Vector、Import
5.RGB Images相关概念:RGB(红、绿、蓝)代表通常在数字成像中使用的一种颜色表示。RGB是使用三个光谱选择传感器分析可见光的人类生理能力的表现。人类的视网膜拥有不同类型的感光细胞。其中三种被称为视锥细胞,它们对颜色敏感,它们的敏感区域与光谱中分别被感知为红色、绿色和蓝色的区域松散地匹配。这三种颜色构成了我们所见的世界。ITK引入了ITK::RGBPixel类型来支持表示RGB颜色空间的值。RGBPixel类体现了与空间中的itk::向量Vector不同的概念。由于这个原因,RGBPix原创 2020-06-24 14:11:07 · 508 阅读 · 0 评论 -
ITK学习笔记:1.Data presentation-1.1Image(一)基操:创建、文件读取、访问、简单定义
在ITK中负责表示数据的基本类。最常见的类是itk::Image、itk::Mesh和itk::PointSet。其中,Image类遵循泛型编程的精神,其中类型与类的算法行为分离,ITK支持任何像素类型和任何空间维度的图像。1.创建一个Image首先,必须包含Image类的头文件。#include "itkImage.h"然后我们必须决定用什么类型来表示像素以及图像的尺寸。通过这两个参数,我们可以实例化image类。这里我们使用无符号的短像素数据创建了一个3D图像。typedef itk::Im原创 2020-06-24 10:57:43 · 752 阅读 · 0 评论