
ITK
文章平均质量分 69
亦我飞也
资料问题联系qq1837393417
展开
-
基于ITK的读并写 2D的DICOM 图像
DICOM 图像20 世纪 70 年代,在 CT 引入之后,数字诊断图像模式例如 MRI 和电脑在临床应用的增加,美国放射医学学会 (ACR) 和国家电子制造学会 (NEMA) 认为有设置一个标准的需要,以便为不同的厂商制造的装置之间传递信息和图像带来方便。大多数医学领域的图像存储和传递都用的是 DICOM 标准。DICOM 文件由一个头文件和一个图像数据体构成。头文件包括标准和自由形成域。这个例子介绍了如何读一个单独的 DICOM 切片以及把它写作另一个 DICOM 切片。在处理过程中应用亮度变.原创 2021-08-05 09:51:50 · 1008 阅读 · 0 评论 -
ITK系列33_ 阈值水平集算法对脑部MHA文件进行三维分割
实例33阈值水平集算法对脑部MHA文件进行三维分割#include "itkImage.h"#include "itkThresholdSegmentationLevelSetImageFilter.h"#include "itkFastMarchingImageFilter.h"#include "itkBinaryThresholdImageFilter.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h".原创 2021-05-19 09:55:46 · 947 阅读 · 0 评论 -
ITK系列32_ 阈值水平集算法对脑部PNG图像进行二维分割
阈值水平集分割itk::ThresholdSegmentationLevelSetImageFilter 是对阈值连接成员分割在水平集框架上的一个拓展。目标是定义一个亮度值的范围来对相关的组织类型继续分类,然后求出对那个亮度范围基于水平集等式上的传播系数。使用水平集方法,进化的表面的平滑可以被用来阻止在连接成员方案中常见的“漏泄”。依照下面的公式可以从 FeatureImage 输入 g(x) 同 UpperThreshold 值 U 和 LowerThreshold 值 L 计算出下等式的传播系数 P原创 2021-05-19 09:54:47 · 785 阅读 · 2 评论 -
ITK系列31_ 水平集(测量主动轮廓)算法对脑部PNG图像进行二维分割
测量主动轮廓分割如图 9-21 所示展示了一个分割任务中与 GeodesicActiveContourLevelSetImageFilter 的应用有关的主要成员。这个传递途径和 9.3.2 小节中 ShapeDetectionLevelSetImageFilter 使用的途径非常相似。这个传递途径的第一阶段是使用 itk::CurvatureAnisotropicDiffusionImageFilter 来进行平滑。将平滑后的图像作为输入传递给itk::GradientMagnitudeRecursi原创 2021-05-19 09:53:54 · 862 阅读 · 0 评论 -
ITK系列30_ 水平集(快速步进)算法对脑部PNG图像进行二维分割
水平集分割水平集是跟踪轮廓和表面运动的一种数字化方法。不直接对轮廓进行操作,而是将轮廓设置成一个高维函数的零水平集,这个高维函数叫做水平集函数: Ψ(X,t) 。然后水平集函数运动成为一个微分方程。在任何时候,通过从输出中提取零水平集来得到运动的轮廓。使用水平集的主要优点是可以对任何复杂的结构进行模式化和拓扑变换,比如暗中操作融合和分离。通过使用基于图像的诸如亮度均值、梯度和边缘之类的特征的微分方程的解答,水平集就可以用来对图像进行分割。在一个典型的方法中,用户对一个轮廓进行初始化并运动这个轮廓直到它符原创 2021-05-19 09:53:00 · 1327 阅读 · 0 评论 -
ITK系列29_ ITK分水岭算法对PNG图像进行二维分割
基于分水岭算法的分割分水岭分割对图像特征使用梯度下降法和沿区域边界分析弱点 (weak points) 来将像素分类为区域。想像在一个有水流动的拓扑地形结构中,水在重力的引导下聚集到一个地势较低的盆地。随着水量的增加,水将流满整个盆地直到水流溢出到另一个盆地,这样就会将一些小盆地吞没形成大的盆地。使用局部的几何结构来形成区域 ( 集水的盆地 ) ,在图像领域中正如使用一些诸如曲率或梯度强度等特征中的局部极值来将像素连接成区域。这种技术不像其他区域分割,它几乎不需要用户定义门限,尤其适合对以不同的特征类型原创 2021-05-19 09:51:32 · 1003 阅读 · 0 评论 -
ITK系列28_ 区域增长(置信连接)对PNG向量图像进行二维分割
向量图像中的置信连接这个例子阐述了应用在含有向量像素类型的图像中的置信连接的用法。对向量图像执行的置信连接在类itk::VectorConfidenceConnected 中。标量版本和向量版本之间的基本区别是向量版本使用向量矩阵来代替变量,而一个向量值代替一个标量值。区域中一个向量像素值的成员关系是使用作为类 itk::Statistics::MahalanobisDistanceThresholdImageFunction 马氏距离(mahalanobis distance) 来衡量的。实例原创 2021-05-19 09:50:42 · 482 阅读 · 0 评论 -
ITK系列27_ 边缘保留平滑滤波对脑部MHA文件进行三维滤波
实例27边缘保留平滑滤波对脑部MHA文件进行三维滤波#include "itkImage.h"#include "itkCastImageFilter.h"#include "itkCurvatureFlowImageFilter.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"int main(int argc, char* argv[]){ //定义浮点像素类型 InternalPixelTyp.原创 2021-05-19 09:49:33 · 495 阅读 · 0 评论 -
ITK系列26_ 边缘保留平滑滤波对PNG图像进行二维滤波
实例26边缘保留平滑滤波对PNG图像进行二维滤波#include "itkImage.h"#include "itkCastImageFilter.h"#include "itkCurvatureFlowImageFilter.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"int main(int argc, char* argv[]){ //定义浮点像素类型 InternalPixelType.原创 2021-05-18 17:16:22 · 501 阅读 · 0 评论 -
ITK系列25_ 区域增长(孤立连接)算法对脑部MHA文件进行三维分割
实例25孤立连接算法对脑部MHA文件进行三维分割#include "itkIsolatedConnectedImageFilter.h"#include "itkImage.h"#include "itkCastImageFilter.h"#include "itkCurvatureFlowImageFilter.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"int main( int argc, cha.原创 2021-05-18 17:15:35 · 450 阅读 · 0 评论 -
ITK系列24_ 区域增长(孤立连接)算法对脑部PNG图像进行二维分割
孤立连接接 下 来 的 例 子 阐 述 了 itk::IsolatedConnectedImageFilter 的 用 法 。 这 个 滤 波 器 是itk::ConnectedThresholdImageFilter 的一个相关变量。在这个滤波器中用户提供两个种子和一个最小门限值。这个滤波器将在一个与第一个种子相连而与第二个种子不相连的区域中生长。为了做到这一点,这个滤波器找到了一个能用来作为第一个种子的上门限值的亮度值。使用一个二进位的搜索方法来找到分开两个种子的值。我们可以通过选取两个适当的位原创 2021-05-18 17:14:21 · 572 阅读 · 1 评论 -
ITK系列23_ 区域增长(置信连接)算法对脑部MHA文件进行三维分割
实例23置信连接算法对脑部MHA文件进行三维分割在这个例子中使用前面例子中的代码,并设置图像的维数为 3 。应用梯度各向异性扩散来平滑图像。这个滤波器使用两个迭代器、一个值为 0.05 的 time step 和一个值为 3 的conductance 值,然后使用置信连接方式对平滑后的图像进行分割。使用的五个种子点的坐标分别为( 118 , 85 , 92 )、( 63 , 87 , 94 )、( 63 , 157 , 90 )、( 111 , 188 , 90 )、( 111 , 50 , 88 ).原创 2021-05-18 17:12:55 · 1343 阅读 · 14 评论 -
ITK系列22_ 区域增长(置信连接)算法对脑部PNG图像进行二维分割
置信连接接下来的例子阐述了 itk::ConfidenceConnectedImageFilter 的用法。 ConfidenceConnected Image Filter 使用的标准是基于当前区域的简单统计上的。首先,算法计算包含在区域中的所有像素亮度的平均值和标准差。用户提供一个因子用来乘以标准差并定义一个平均值的范围。相邻像素中亮度值在这个范围内的将包含到这个区域中。当没有更多的像素符合这个标准时,算法将结束它的第一次迭代。使用包含在区域内的所有像素再次计算亮度值的平均值和标准差。这个平均值和标原创 2021-05-18 17:11:09 · 917 阅读 · 0 评论 -
ITK系列21_ 区域增长(领域连接)算法对脑部PNG图像进行二维分割
邻域连接接下来的例子阐述了 itk::NeighborhoodConnectedImageFilter 的用法。这个滤波器是itk::ConnectedThresholdImageFilter 的一个相关变量。一方面,如果一个像素的亮度在用户提供的两个门限值之间,那么 ConnectedThresholdImageFilter 就接受这个像素作为区域内的一个像素。另一方面, NeighborhoodConnectedImageFilter 仅仅接受那些所有相邻像素的亮度都在范围内的像素。每个像素的邻域大原创 2021-05-18 17:10:22 · 657 阅读 · 0 评论 -
ITK系列20_ 区域增长(OTSU算法)对PNG图像进行多阈值二维分割
实例20OTSU算法对PNG图像进行多阈值二维分割#include "itkOtsuMultipleThresholdsCalculator.h"//包含头文件#include "itkImage.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"#include "itkScalarImageToHistogramGenerator.h"#include "itkBinaryThresholdImageFil.原创 2021-05-18 16:59:01 · 954 阅读 · 1 评论 -
ITK系列19_ 区域增长(OTSU算法)对PNG图像进行单阈值二维分割
OTSU 分割(最大类间方差阈值分割)实例19OTSU算法对PNG图像进行单阈值二维分割#include "itkOtsuThresholdImageFilter.h"//Otsu分割头文件#include "itkImage.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"int main( int argc, char * argv[] ){ /*if( argc < 5 ) { .原创 2021-05-18 16:57:51 · 694 阅读 · 0 评论 -
ITK系列18_ 区域增长(连接门限)对脑部MHA文件进行三维分割
实例18 连接门限对脑部MHA文件进行三维分割#include "itkConnectedThresholdImageFilter.h"//连接门限头文件#include "itkImage.h"#include "itkCastImageFilter.h"#include "itkCurvatureFlowImageFilter.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"//图像中存在的噪声将大大降低滤原创 2021-05-18 16:56:37 · 527 阅读 · 6 评论 -
ITK系列17_ 区域增长(连接门限)对脑部切片PNG图像进行二维分割
区域生长区域生长算法被证实是一个有效的图像分割方法。区域生长的基本方法是从被分割对象里作为种子区域 ( 通常是一个或多个像素 ) 的一个区域开始,在种子区域的相邻像素寻找与种子像素有相同或相似性质的像素,并将这些像素合并到种子像素所在的区域中。将这些新像素当作新的种子区域继续进行上述过程。区域生长算法主要取决于用来选择确定为种子区域像素的标准、用来确定相邻像素的连通性类型和用来访问相邻像素的策略。连接门限在生长区域中包含像素的一个简单标准是以一个特殊的间距来计算亮度值。接下来的例子阐述了 i原创 2021-05-18 16:53:31 · 569 阅读 · 0 评论 -
ITK系列16_ PNG图像进行不带滤波的二维导函数提取
实例16PNG图像进行不带滤波的二维导函数提取使用 itk::DerivativeImageFilter 来计算一幅图像的偏微分——图像沿一个特定的坐标轴方向上的微分。#include "itkImage.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"#include "itkRescaleIntensityImageFilter.h"#include "itkDerivativeImageFilter..原创 2021-05-17 10:05:13 · 357 阅读 · 0 评论 -
ITK系列15_ MHA格式文件进行带滤波三维梯度强度提取
实例15MHA格式文件进行带滤波三维的梯度强度提取#include "itkImageFileReader.h"#include "itkImageFileWriter.h"#include "itkRescaleIntensityImageFilter.h"#include "itkGradientMagnitudeRecursiveGaussianImageFilter.h"//带滤波梯度强度的头文件int main( int argc, char * argv[] ){ /*i.原创 2021-05-17 10:04:03 · 430 阅读 · 0 评论 -
ITK系列14_ PNG图像进行带滤波的二维梯度强度提取
实例14PNG图像进行带滤波的二维梯度强度提取微分是对一个数字数据的不规则操作。实际中可以方便地定义一个执行微分的比例。在执行这样的滤波时使用一个高斯核被认为是最便捷的选择。通过选择一个特定的高斯标准差(σ) ,就可以选择一个相应的比例来去除通常被认为是噪声的高频部分。itk::GradientMagnitudeRecursiveGaussianImageFilter 计算在每个像素的图像梯度。这个计算过程等同于首先通过将图像和一个高斯核卷积来平滑图像,然后应用一个差分操作。 s 的值是由用户选择的。.原创 2021-05-17 10:02:42 · 471 阅读 · 2 评论 -
ITK系列13_ PNG图像进行不带滤波的二维梯度强度提取
梯度梯度在一些背景下表示梯度向量而在其他情况下可以表示梯度向量的大小。 ITK 滤波器在涉及这个概念时通过强度这个概念来区别该不明确概念。 ITK 提供可以计算图像梯度向量和图像强度大小的滤波器。方向导数:一个函数沿指定方向的变化率。梯度:方向导数变化最大的方向。实例13PNG图像进行不带滤波的二维梯度强度提取图像梯度的强度广泛地应用在图像分析中,主要用来帮助检测对象轮廓和分离均匀区域。 itk::GradientMagnitudeImageFilter 使用一个简单的有限差分方..原创 2021-05-17 10:01:04 · 408 阅读 · 0 评论 -
ITK系列12_ MHA格式文件进行三维非线性映射
实例12MHA格式文件进行三维非线性映射#include "itkImage.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"//非线性映射滤波器头文件#include "itkSigmoidImageFilter.h"//注:非线性映射算法只能实现像素值(0-255)范围的输入输出映射。int main( int argc, char * argv[] ){ /*if( argc < 7 ) .原创 2021-05-17 09:59:52 · 390 阅读 · 0 评论 -
ITK系列11_ PNG图像进行二维非线性映射
非线性映射接下来的滤波器可以被看成是投射滤波器的一个变量。它的主要特性是使用一个平滑、连续的非线性形式的变换函数。itk::SigmoidImageFilter 通常作为一个亮度变换使用。它通过在亮度值的一个特定范围的边界的一个非常平滑连续的转变将这个范围映射到一个新的亮度范围,是广泛使用 Sigmoids来作为关注值的一个设置并逐渐削弱范围之外的值的一个机制。为了扩展 Sigmoids 滤波器的机动性,使用四个参数通过选择它的输入、输出亮度范围来调节它在 ITK 中的执行。接下来的方程表达了 Si原创 2021-05-17 09:58:34 · 682 阅读 · 0 评论 -
ITK系列10_ MHA格式文件进行三维线性映射
实例10MHA格式文件进行三维线性映射#include "itkImage.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"//线性映射头文件#include "itkCastImageFilter.h"#include "itkRescaleIntensityImageFilter.h"#include "itkNormalizeImageFilter.h"int main( int argc, cha.原创 2021-05-17 09:56:49 · 520 阅读 · 1 评论 -
ITK系列9_ PNG图像进行二维线性映射
投射和亮度映射本节介绍的滤波器实现 pixel-wise 亮度映射。投射用来将一种像素类型转换成另一种,而亮度映射也用来计算不同像素类型的亮度范围。本小节介绍流经流水线的图像的外在投射的机制。下面将处理接下来的四个滤波器:itk::CastImageFilter、itk::RescaleIntensityImageFilter 、 itk::ShiftScaleImageFilter 和itk::NormalizeImageFilter 。这些滤波器除了它们都可以修改像素值之外,互相之间并不直接相关原创 2021-05-17 09:43:05 · 693 阅读 · 0 评论 -
ITK系列8_ 从缓冲器中输入图像数据
实例8从缓冲器中输入图像数据#include "itkImage.h"#include "itkImportImageFilter.h"//包含 ImportImageFilter(图像像素数据导入缓冲器) 类的头文件#include "itkImageFileWriter.h"//这个例子阐述了如何将数据输入到 itk::Image 类中。这在同其他软件系统相连时更加有//用。许多系统都使用内存的一个邻近内存块作为图像像素数据的缓冲器。当前样例就是假定//这种情况并在缓冲器中插入一个 i.原创 2021-05-16 11:33:45 · 465 阅读 · 0 评论 -
ITK系列7_ 向量图像(将一个向量存储到一个图像像素中)
实例7向量图像(将一个向量存储到一个图像像素中)#include "itkVector.h"//向量类的头文件#include "itkImage.h"int main(int, char *[]){ /*向量类的使用是在基于空间中代表坐标和维数的类型之上进行模板化的。在此例中,向 量的长度和图像长度相匹配,但是并不是完全相同。我们可以用一个三维的向量作为像素来 定义一个四维的图像*/ typedef itk::Vector< float, 3 > P.原创 2021-05-16 11:33:04 · 487 阅读 · 0 评论 -
ITK系列6_ RGB图像像素色彩成分的访问
实例6RGB图像像素色彩成分的访问#include "itkImage.h"#include "itkImageFileReader.h"//为了使用 itk::RGBPixel 类,包含头文件#include "itkRGBPixel.h"//在 ITK 中如何表示 RGB 图像。int main( int , char * argv[] ){ //RGBPixeld 类的使用是基于用来代表红、绿和蓝的像素成分的类型之上的 //定义RGBPixel类型的PixelType对象.原创 2021-05-16 11:32:31 · 320 阅读 · 0 评论 -
ITK系列5_ ITK定义图像原点和间距
实例5定义图像原点和间距#include "itkImage.h"// Function to simulate getting mouse click from an imagestatic itk::Image< unsigned short, 3 >::IndexType GetIndexFromMouseClick(){ itk::Image< unsigned short, 3 >::IndexType LeftEyeIndex; LeftEyeIn.原创 2021-05-16 11:31:01 · 709 阅读 · 0 评论 -
ITK系列4_ ITK访问图像像素数据
实例4 ITK访问图像像素数据#include "itkImage.h"//这个例子阐述了 SetPixel( )和 GetPixel( )方法的用法//可以直接访问图像中包含的像素数据int main(int, char *[]){ typedef itk::Image< unsigned short, 3 > ImageType; ImageType::Pointer image = ImageType::New(); const ImageType::Size原创 2021-05-16 11:24:07 · 656 阅读 · 1 评论 -
ITK系列3_ ITK读取PNG图像
实例3 ITK读取PNG图像#include "itkImage.h"//图像类的头文件#include "itkImageFileReader.h"//图像读取类的头文件#include <itkPNGImageIOFactory.h>// PNG对应int main( int , char * argv[]){ //指定表示图像的像素和维数的值来定义图像的类型 typedef unsigned char PixelType;//图像的像素类型 c原创 2021-05-16 11:22:51 · 839 阅读 · 3 评论 -
ITK系列2_创建图像(手动创建一个itk::Image类)
实例2创建图像(手动创建一个itk::Image类)#include "itkImage.h"//图像类的头文件//这个例子阐述了如何人为地创建一个 itk::Image 类,下面是对图像类进行实例化、声明//和创建的最简单程序代码。int main(int, char *[]){ //创建 一个三维、像素是无符号短字符数据类型的图像 typedef itk::Image< unsigned short, 3 > ImageType; //调用 New( )操作创.原创 2021-05-16 11:21:44 · 1119 阅读 · 0 评论 -
ITK系列1_ITK环境测试
实例1 ITK环境测试#include "itkImage.h"//包含图像类的头文件#include <iostream>int main(){ //创建一个三维、像素是无符号短字符数据类型的图像 typedef itk::Image< unsigned short, 3 > ImageType; //调用 New( )操作创建图像并将结果分配到 itk::SmartPointer ImageType::Pointer image =原创 2021-05-16 11:20:48 · 617 阅读 · 0 评论 -
基于C++的ITK图像分割与配准学习笔记1(图像数据表达-图像)
第四章 数 据 表 达实例1 ITK环境测试#include "itkImage.h"//包含图像类的头文件#include <iostream>int main(){ //创建一个三维、像素是无符号短字符数据类型的图像 typedef itk::Image< unsigned short, 3 > ImageType; //调用 New( )操作创建图像并将结果分配到 itk::SmartPointer ImageType::Poi原创 2020-12-03 15:51:37 · 2547 阅读 · 0 评论 -
基于C++的ITK图像分割与配准学习笔记2(图像滤波)
第六章 图像滤波6.4 梯度梯度在一些背景下表示梯度向量而在其他情况下可以表示梯度向量的大小。 ITK 滤波器在涉及这个概念时通过强度这个概念来区别该不明确概念。 ITK 提供可以计算图像梯度向量和图像强度大小的滤波器。6.4.1 不带滤波的梯度强度图像梯度的强度广泛地应用在图像分析中,主要用来帮助检测对象轮廓和分离均匀区域。 itk::GradientMagnitudeImageFilter 使用一个简单的有限差分方式来计算图像中每个像素位置的梯度强度。例如:在二维情况下计算等同于将图像.原创 2020-12-03 15:43:56 · 1913 阅读 · 2 评论 -
基于C++的ITK图像分割与配准学习笔记3(图像分割)
第九章 图 像 分 割9.1 区域生长区域生长算法被证实是一个有效的图像分割方法。区域生长的基本方法是从被分割对象里作为种子区域 ( 通常是一个或多个像素 ) 的一个区域开始,在种子区域的相邻像素寻找与种子像素有相同或相似性质的像素,并将这些像素合并到种子像素所在的区域中。将这些新像素当作新的种子区域继续进行上述过程。区域生长算法主要取决于用来选择确定为种子区域像素的标准、用来确定相邻像素的连通性类型和用来访问相邻像素的策略。9.1.1 连接门限在生长区域中包含像素的一个简单标准是以一个特殊原创 2020-12-03 15:23:02 · 6424 阅读 · 7 评论 -
手动配置(非CMake)ITK和VTK环境实现ITK读取、VTK显示PNG图像
完整博客见:Win10-64位(或Win7)+VS2019+ITK4.13.2+VTK8.2+CMake3.16环境配置5、ITK读取、VTK显示png图像(手动配置ITK和VTK环境)第5小节,本例程通过手动新建项目(不使用CMakeLists.txt构建)配置好的ITK和VTK都可运行工程 itk_vtk_3文件夹下载(实现ITK读取、VTK显示png图像)5.1 在完成3.7节基础上,将目录F:\Software\ITK4.13.2 中的 itk2 项目在相同目录下复制粘贴一份,并重命..原创 2020-10-31 16:00:19 · 1005 阅读 · 0 评论 -
VS2019(x64)+ITK4.13.2手动新建项目配置ITK(不使用CMakeLists.txt构建)
完整博客见:Win10-64位(或Win7)+VS2019+ITK4.13.2+VTK8.2+CMake3.16环境配置目录:3.6 手动新建项目配置ITK(不使用CMakeLists.txt构建)3.7 手动配置的ITK项目进行.png图像的读取与另存(在3.6节基础上)3.6 手动新建项目配置ITK(不使用CMakeLists.txt构建)3.6小节,本例程通过手动新建项目(不使用CMakeLists.txt构建)配置好的 ITK 可运行工程 itk2文件夹下载(...原创 2020-10-31 15:42:32 · 1937 阅读 · 2 评论 -
Win10(Win7)+VS2019(x64)+ITK4.13.2+CMake3.16环境配置
完整博客见:Win10-64位(或Win7)+VS2019+ITK4.13.2+VTK8.2+CMake3.16环境配置目录:3、ITK4.13.2安装与测试3.1 ITK的下载3.2 创建ITK编译目录3.3 CMake的配置(ITK)3.4 ITK电脑环境变量配置3.5 测试ITK是否安装成功(CMakeLists.txt构建工程,输出“ITK Hello World!!!”)3、ITK4.13.2安装与测试3.1 ITK的下载ITK4.1...原创 2020-10-31 15:30:02 · 1072 阅读 · 0 评论