
ITK 基础
文章平均质量分 69
洬穻
这个作者很懒,什么都没留下…
展开
-
ITK 读写基本例子
可靠的读写图像的类位于数据处理通道的开始和结束。这些类被认为是数据源(readers)和数据槽(writers)。一般来说,它们作为滤波器被涉及了,虽然readers没有输入通道,writers也没有输出通道。itk::ImageFileReader类管理图像的读入,而itk::ImageFileWriter管理图像的写操作。两个类对于任何文件格式都是独立的。实际上低水平的读、写特殊文件格式的任务由一组itk::ImageIO类在后台执行。执行读...原创 2022-02-02 17:37:13 · 613 阅读 · 0 评论 -
ITK 数据处理管道
数据处理管道:表示数据的类(数据对象)经过滤波器操作被组织进入数据流管道。这些管道保持静态并只在必要时才会运行。它们同样支持多线程和流动功能(例如:能将数据最小化到内存区域中)。ITK数据处理管道数据对象(例如图像和网格)是用来代表数据的,过程对象就是用来操作数据对象并产生新的数据对象的类。像 sourse、filter object 和 mappers 都是过程对象。Sourse(例如 readers)生成数据,filter object 载入数据并经过处...原创 2022-02-02 17:39:29 · 303 阅读 · 0 评论 -
ITK 智能指针
系统面向对象的、天然的特性通过各种各样的对象类型或类来描述和操作数据。当对一 个特定类实例化来产生这个类的实例时,系统会分配内存来存储数据属性值和方法指针(例 如纯虚函数指针表)。然后其他类或数据结构就可以用普通程序操作来引用这个对象。一般 地,在程序执行过程中,当实例被删除或内存恢复时,应用将会消失。然而,确定实例何时 删除是很困难的。删除实例过快会造成程序崩溃;而删除太慢会出现内存泄露(或过多消耗 内存)。这种内存分配和释放的过程就是内存管理。 在...原创 2022-02-02 17:40:23 · 739 阅读 · 0 评论 -
ITK 错误处理和异常处理
一般地,在程序运行中 ITK 使用异常处理来处理错误。异常处理是 C++语言中的一个标准部分,通常按以下形式来阐明: try { //...try executing some code here... } catch ( itk::ExceptionObject exp ) { //...if an exception is thrown catch it here ...原创 2022-02-02 17:43:11 · 713 阅读 · 0 评论 -
ITK 插拔式工厂
ITK 中在输入/输出结构后面的原理叫做插拔式工厂。这个概念被解释在图 7-1 所示的UML 图表里。从用户的观点看,可靠的读、写文件的类是 itk::ImageFileReader 和itk::ImageFileWriter。这两个类不知道读或写特殊文件格式如 PNG 或 DICOM 的细节,它们所做的就是分派用户的要求给知道文件格式细节的类。这些类是 itk::ImageIO 类。ITK 授权机构使用户能够通过添加新类给 ImageIO 来扩展被支持的文件格式的数量。ImageFileR...原创 2022-02-02 18:47:59 · 152 阅读 · 0 评论 -
ITK 明确地使用ImageIO 类
在用户知道用什么文件格式并想明确地指出的情况下,能够以一个itk::ImageIO类为例并赋给图像文件reader或writer。这要围绕着尝试找到合适的ImageIO类去执行IO操作的itk::ImageIOFactory机构。ImageIO的外在选择也允许用户调用一个特殊类的专门特征,这个类也许在ImageIO提供的普通的API中不可用。 下面的例子介绍了一个IO类的外在例子(一个VTK文件格式),设置它的参数并将它连接到itk::ImageFileWriter。 ...原创 2022-02-02 19:00:13 · 657 阅读 · 0 评论 -
ITK 投射和亮度映射
本节介绍的滤波器实现 pixel-wise 亮度映射。投射用来将一种像素类型转换成另一种, 而亮度映射也用来计算不同像素类型的亮度范围。 线性映射 本小节的源代码在文件 Examples/Filtering/CastingImageFilters.cxx 中。由于在研发平台中使用范型编程,所以大多数类型都由编译时间决定,很少有关于类型变换的决定留到运行时间解决的。由用户将像素类型转换为数据流水线所需要的像素类型。在医学图像应用中,通常不会使用一种通用的像素类型,因为这...原创 2022-02-03 16:17:55 · 943 阅读 · 0 评论 -
ITK 门限处理
二值门限处理 本小节的源代码在文件 Examples/Filtering/BinaryThresholdImageFilter.cxx 中。 这个例子阐述了二值阈值图像滤波器的用法。这个滤波器通过在如图 6-1 所示的规则下改变像素值来将一个图像转化成一个二值图像。用户需要指定两个门限:上门限和下门限,也就是两个亮度值:内部和外部。对于输入图像中的每个像素,使用上、下门限来和像素值进行比较。如果像素值在由[下门限,上门限]定义的范围内,则输出像素指定为 InsideV...原创 2022-02-03 17:22:32 · 715 阅读 · 0 评论 -
ITK 孔洞填充
GrayscaleFillholeImageFilter 填充孔洞,不对边缘造成影响(无平滑边缘效果)itk提供了两个的补洞类:itkGrayscaleFillholeImageFilter(针对灰度图像), itkBinaryFillholeImageFilter(针对二值图像) //孔洞填充(灰度图像) typedef itk::GrayscaleFillholeImageFilter<ImageType, ImageType> ...原创 2022-02-03 17:52:34 · 1764 阅读 · 0 评论 -
ITK 边缘检测
Canny 边缘检测 本小节的源代码在文件 Examples/Filtering/CannyEdgeDetectionImageFilter.cxx 中。 这个例子介绍了 itk::CannyEdgeDetectionImageFilter 的用法。这个滤波器由于它灵敏度高、定位精确和抗噪声能力强可以得到最佳的解决方案而广泛应用在边缘检测中。 使用这个滤波器的第一步是包含它的头文件: #include "itkCannyEdgeDetectionImageFi...原创 2022-02-03 20:51:59 · 1593 阅读 · 0 评论 -
ITK 梯度强度
梯度计算是图像处理中的一个常见操作。梯度在一些背景下表示梯度向量而在其他情况下可以表示梯度向量的大小。ITK 滤波器在涉及这个概念时通过强度这个概念来区别该不明确概念。ITK 提供可以计算图像梯度向量和图像强度大小的滤波器。 1.梯度强度 像素值大小表示像素位置的梯度大小.本小节的源代码在文件 Examples/Filtering/GradientMagnitudeImageFilter.cxx 中。图像梯度的强度广泛地应用在图像分析中,主要用来帮...原创 2022-02-03 21:16:42 · 958 阅读 · 0 评论 -
ITK 数据表达
ITK 中有两种基本的数据表示类型:图像和网格。这个功能是在类 Image 和 Mesh 中实现的,这两个类都是 itk::DataObject 的子类。在 ITK 中,数据对象是那些分送系统和参与数据流管道的类。itk::Image 表示一个 n 维、规则的样品数据。采样方向平行于任一个坐标轴,采样起点、像素间隔和每个方向上的样品数量(如图像维数)是特定的。这个样品或像素在 ITK 中的类型是任意的,一个模板参数 TPixel 指定了模板实例的类型(当对图像类实例化时图...原创 2022-02-03 21:28:31 · 1141 阅读 · 0 评论 -
ITK 数据表达(图像)
itk::Image 是遵循范型编程思想的类,其类型是由算法行为的类演化而来。ITK 支持任何像素类型和空间维的图像。 1.创建图像 这部分源代码在 Examples/DataRepresentation/Image/Image.cxx 中。 这个例子阐述了如何人为地创建一个 itk::Image 类,下面是对图像类进行实例化、声明和创建的最简单程序代码。 //首先,必须包含图像类的头文件:#include “itkImage.h”//...原创 2022-02-03 22:11:36 · 1444 阅读 · 0 评论 -
ITK DICOM序列图像读写
3D体数据和2D序列切片集均以切片形式保存.1 读序列图像 这部分的源码在文件Examples/IO/ImageSeriesReadWrite.cxx中。这个例子介绍了如何从独立的文件中读取一系列的2D切片从而形成一个体。这里要用到itk::ImageSeriesReader。这个类与提供需要被读的文件的一个列表的发生器联合工作。这里我们用itk::NumericSeriesFileNames作为发生器。这个发生器是用一个字符串格式的打印风格。这里...原创 2022-02-03 23:09:41 · 1487 阅读 · 0 评论 -
ITK 读写DICOM序列图像例子
#include "itkGDCMSeriesFileNames.h"#include "itkImageSeriesReader.h"#include "itkImageSeriesWriter.h"//#include "itkImageFileReader.h"//读取头文件//#include "itkImageFileWriter.h"//写入头文件#include "itkGDCMImageIO.h"//ImageIo头文件int main(int argc, char* ..原创 2022-02-03 23:15:41 · 361 阅读 · 0 评论 -
ITK 邻域滤波器
在一种使用输入像素的一个很小的邻域的信息来计算每个输出像素的滤波器形式的图像处理进程中会涉及位置这个概念。这些滤波器的一个典型形式是二维图像中的一个 3×3滤波器。基于这些滤波器的卷积模块可以执行从消除噪声到微分操作、数学形态学范围内的多种不同的任务。 ITK 平台是以一种基于邻域图像滤波的优雅的方式来实现的。输入图像是使用一个称为itk::NeighborhoodIterator 的特定的迭代器来处理的。这个迭代器具有移动图像中所有像素的能力,并对每个像素可以在当前邻域...原创 2022-02-03 23:38:36 · 1174 阅读 · 1 评论 -
ITK 区域生长(连接门限)
在生长区域中包含像素的一个简单标准是以一个特殊的间距来计算亮度值。 本小节的源代码在文件 Examples/Segmentation/ConnectedThresholdImageFilter.cxx 中。 接下来的例子阐述了 itk:: ConnectedThresholdImageFilter 的用法。这个滤波器使用注水迭代器。区域生长方法最主要的算法复杂性是访问相邻像素。注水迭代器承担起这个责任并大大简化了区域生长算法的执行。剩下的算法就是确定一...原创 2022-02-03 23:48:27 · 1325 阅读 · 0 评论