首页 > 其他分享 >ITK 实例11 边缘保留平滑滤波对脑部MHA文件进行三维滤波

ITK 实例11 边缘保留平滑滤波对脑部MHA文件进行三维滤波

时间:2023-08-16 15:02:34浏览次数:41  
标签:11 typedef InternalImageType ITK OutputImageType 滤波 smoothing itk

 1 #include "itkImage.h"
 2 #include "itkCastImageFilter.h"
 3 #include "itkCurvatureFlowImageFilter.h"
 4 #include "itkImageFileReader.h"
 5 #include "itkImageFileWriter.h"
 6  
 7 int main(int argc, char* argv[])
 8 {
 9     //定义浮点像素类型 InternalPixelType
10     typedef   float           InternalPixelType;
11     const     unsigned int    Dimension = 3;
12     //定义浮点、维数2的图像类型 InternalImageType
13     typedef itk::Image< InternalPixelType, Dimension >  InternalImageType;
14     //定义无符号字符 输出像素类型 OutputPixelType
15     typedef unsigned char                            OutputPixelType;
16     //定义无符号字符、维数2 输出图像类型 OutputImageType
17     typedef itk::Image< OutputPixelType, Dimension > OutputImageType;
18     //定义滤波输入图像类型InternalImageType   滤波输出图像类型OutputImageType
19     typedef itk::CastImageFilter< InternalImageType, OutputImageType >
20         CastingFilterType;
21     //实例化滤波器对象caster
22     CastingFilterType::Pointer caster = CastingFilterType::New();
23     //定义图像读取类型ReaderType
24     typedef  itk::ImageFileReader< InternalImageType > ReaderType;
25     //定义图像写类型WriterType
26     typedef  itk::ImageFileWriter<  OutputImageType  > WriterType;
27  
28     ReaderType::Pointer reader = ReaderType::New();
29     WriterType::Pointer writer = WriterType::New();
30  
31     reader->SetFileName("BrainProtonDensity3Slices.mha");
32     writer->SetFileName("lvbo_CastingFilter.mha");
33  
34     //实例化滤波对象smoothing
35     typedef itk::CurvatureFlowImageFilter< InternalImageType, InternalImageType >
36         CurvatureFlowImageFilterType;
37     CurvatureFlowImageFilterType::Pointer smoothing =
38         CurvatureFlowImageFilterType::New();
39  
40     现在连接管道
41     smoothing->SetInput(reader->GetOutput());
42     //输出滤波后的效果图
43     caster->SetInput(smoothing->GetOutput());
44     writer->SetInput(caster->GetOutput());
45  
46     /*IsolatedConnectedImageFilter 期望用户指定一个门限和两个种子。在这个例子中,我们
47     从命令行得到它们*/
48     smoothing->SetNumberOfIterations(12);
49     smoothing->SetTimeStep(0.125);
50  
51     try
52     {
53         writer->Update();
54     }
55     catch (itk::ExceptionObject & excep)
56     {
57         std::cerr << "Exception caught !" << std::endl;
58         std::cerr << excep << std::endl;
59     }
60  
61     return EXIT_SUCCESS;
62 }

标签:11,typedef,InternalImageType,ITK,OutputImageType,滤波,smoothing,itk
From: https://www.cnblogs.com/ybqjymy/p/17635005.html

相关文章

  • ITK 实例12 置信连接对PNG向量图像进行二维分割
    1#include"itkVectorConfidenceConnectedImageFilter.h"2#include"itkImage.h"3#include"itkImageFileReader.h"4#include"itkImageFileWriter.h"5#include"itkRGBPixel.h"67intmain(i......
  • ITK 实例13 ITK分水岭算法对PNG图像进行二维分割
    1#include<iostream>2#include"itkVectorGradientAnisotropicDiffusionImageFilter.h"3#include"itkVectorGradientMagnitudeImageFilter.h"4#include"itkWatershedImageFilter.h"56#include"itkImage......
  • ITK 实例5 领域连接算法对脑部PNG图像进行二维分割
    1#include"itkNeighborhoodConnectedImageFilter.h"2#include"itkImage.h"3#include"itkCastImageFilter.h"4//使用itk::CurvatureFlowImageFilter在保护边缘时平滑图像5#include"itkCurvatureFlowImageFilter.h"6#......
  • ITK 实例6 置信连接算法对脑部PNG图像进行二维分割
    1#include"itkConfidenceConnectedImageFilter.h"//包含置信连接类2//图像中存在的噪声会降低这个滤波器生长大面积区域的能力。当面对噪声图像时,通常3//是使用一个边缘保留平滑滤波器4#include"itkCastImageFilter.h"//滤波器5#include"itkCurvatureFlowI......
  • ITK 实例7 置信连接算法对脑部MHA文件进行三维分割
    在这个例子中使用前面例子中的代码,并设置图像的维数为3。应用梯度各向异性扩散来平滑图像。这个滤波器使用两个迭代器、一个值为0.05的timestep和一个值为3的conductance值,然后使用置信连接方式对平滑后的图像进行分割。使用的五个种子点的坐标分别为(118,85,92)......
  • ITK 实例8 孤立连接算法对脑部PNG图像进行二维分割
    1#include"itkIsolatedConnectedImageFilter.h"2#include"itkImage.h"3#include"itkCastImageFilter.h"4#include"itkCurvatureFlowImageFilter.h"5#include"itkImageFileReader.h"6#include"......
  • ITK 实例9 孤立连接算法对脑部MHA文件进行三维分割
    1#include"itkIsolatedConnectedImageFilter.h"2#include"itkImage.h"3#include"itkCastImageFilter.h"4#include"itkCurvatureFlowImageFilter.h"5#include"itkImageFileReader.h"6#include"......
  • ITK 实例3 PNG图像进行二维非线性映射
    1#include"itkImage.h"2#include"itkImageFileReader.h"3#include"itkImageFileWriter.h"4//非线性映射滤波器头文件5#include"itkSigmoidImageFilter.h"67intmain(intargc,char*argv[])8{9/*if(argc......
  • ITK 实例4 MHA格式文件进行三维非线性映射
    1#include"itkImage.h"2#include"itkImageFileReader.h"3#include"itkImageFileWriter.h"4//非线性映射滤波器头文件5#include"itkSigmoidImageFilter.h"6//注:非线性映射算法只能实现像素值(0-255)范围的输入输出映射。7intmain(intargc,cha......
  • ITK 实例5 PNG图像进行不带滤波的二维梯度强度提取
    图像梯度的强度广泛地应用在图像分析中,主要用来帮助检测对象轮廓和分离均匀区域。itk::GradientMagnitudeImageFilter使用一个简单的有限差分方式来计算图像中每个像素位置的梯度强度。例如:在二维情况下计算等同于将图像使用模块类型,如下所示:然后计算它们的平方和并计算和的......