ITK学习笔记——dicom序列读取写入

2024-05-14 00:08

本文主要是介绍ITK学习笔记——dicom序列读取写入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于dicom通常都是一系列的图片,为方便后续处理,需要一次性将许多dicom图像一起读取写入。
维数变成了三维,除了长宽,多了切片数。

#include "itkGDCMImageIO.h"
#include "itkGDCMSeriesFileNames.h"
#include "itkImageSeriesReader.h"
#include "itkImageSeriesWriter.h"#include <vector>
#include "itksys/SystemTools.hxx"int main( int argc, char* argv[] )
{typedef signed short    PixelType;const unsigned int      Dimension = 3;typedef itk::Image< PixelType, Dimension >      ImageType;typedef itk::ImageSeriesReader< ImageType >     ReaderType;typedef itk::GDCMImageIO                        ImageIOType;typedef itk::GDCMSeriesFileNames                NamesGeneratorType;ImageIOType::Pointer gdcmIO = ImageIOType::New();NamesGeneratorType::Pointer namesGenerator = NamesGeneratorType::New();namesGenerator->SetInputDirectory( "C:/input" );    //输入目录const ReaderType::FileNamesContainer & filenames =namesGenerator->GetInputFileNames();unsigned int numberOfFilenames =  filenames.size();std::cout << numberOfFilenames << std::endl;for(unsigned int fni = 0; fni<numberOfFilenames; fni++){std::cout << "filename # " << fni << " = ";std::cout << filenames[fni] << std::endl;}ReaderType::Pointer reader = ReaderType::New();reader->SetImageIO( gdcmIO );reader->SetFileNames( filenames );try{reader->Update();}catch (itk::ExceptionObject &excp){std::cerr << "Exception thrown while writing the image" << std::endl;std::cerr << excp << std::endl;return EXIT_FAILURE;}const char * outputDirectory = "C:/output";    //输出目录itksys::SystemTools::MakeDirectory( outputDirectory );typedef signed short    OutputPixelType;const unsigned int      OutputDimension = 2;typedef itk::Image< OutputPixelType, OutputDimension >    Image2DType;typedef itk::ImageSeriesWriter<ImageType, Image2DType >  SeriesWriterType;SeriesWriterType::Pointer seriesWriter = SeriesWriterType::New();seriesWriter->SetInput( reader->GetOutput() );seriesWriter->SetImageIO( gdcmIO );namesGenerator->SetOutputDirectory( outputDirectory );seriesWriter->SetFileNames( namesGenerator->GetOutputFileNames() );seriesWriter->SetMetaDataDictionaryArray(reader->GetMetaDataDictionaryArray() );try{seriesWriter->Update();}catch( itk::ExceptionObject & excp ){std::cerr << "Exception thrown while writing the series " << std::endl;std::cerr << excp << std::endl;return EXIT_FAILURE;}return EXIT_SUCCESS;
}

这篇关于ITK学习笔记——dicom序列读取写入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987191

相关文章

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输

Python读取TIF文件的两种方法实现

《Python读取TIF文件的两种方法实现》本文主要介绍了Python读取TIF文件的两种方法实现,包括使用tifffile库和Pillow库逐帧读取TIFF文件,具有一定的参考价值,感兴趣的可以了解... 目录方法 1:使用 tifffile 逐帧读取安装 tifffile:逐帧读取代码:方法 2:使用

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

uva 10131 最长子序列

题意: 给大象的体重和智商,求体重按从大到小,智商从高到低的最长子序列,并输出路径。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vect

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学