itk--读写dicom图像
程序员文章站
2022-03-31 21:43:28
...
在ITK中,DICOM的范函性由GDCM库提供。这个开放的源码库由INSA-Lyon[26]的creatis 团队发展。虽然初这个库在一个LGPL许可下是开放式的,但是CREATIS对这个许可的限 制理解得很清晰,而且同意采取更多的BSD许可,这个许可可以供ITK使用。它们许可的改 变使得连同ITK描述GDCM成为可能。 GDCM仍然在原始的站点进行维护和改进。版本也用GDCM库的主要版本更新。
读、写一幅 2D 图像
为了读和写切片,我们这里使用itk::GDCMImageIO类,itk::GDCMImageIO类压缩了一 个优先的GDCM库的连接。用这种方法我们就可以进行从ITK到GDCM提供的DICOM的范函 性的存取。GDCMImageIO对象被作为itk::ImageFileWriter使用的ImageIO的对象连接。
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "itkRescaleIntensityImageFilter.h"
#include "itkGDCMImageIO.h"
int main(int argc, char* argv[])
{
using PixelType = unsigned short;
constexpr unsigned int Dimension = 2;
using ImageType = itk::Image< PixelType, Dimension >;
using ReaderType = itk::ImageFileReader< ImageType >;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName("D:\\software\\SLC\\0001.dcm");
using ImageIOType = itk::GDCMImageIO;
ImageIOType::Pointer dicomIO = ImageIOType::New();
reader->SetImageIO(dicomIO);
try
{
reader->Update();
}
catch (itk::ExceptionObject& ex)
{
std::cout << ex << std::endl;
return EXIT_FAILURE;
}
ImageType::SizeType imgSize = reader->GetOutput()->GetLargestPossibleRegion().GetSize();
cout << "read done!Original size: " << imgSize << endl;
return EXIT_SUCCESS;
}
上一篇: ThinkPHP3.1.3版本新特性概述_PHP教程
下一篇: 关于jsp页面跳转的详细介绍