首页 > 编程语言 >C++ ITK 读写.mha 文件

C++ ITK 读写.mha 文件

时间:2023-11-01 11:45:20浏览次数:34  
标签:itk image C++ mha reader include ImageType ITK

如题:

#include <iostream>
#include <string>
#include <itkImage.h>
#include <itkImageFileReader.h>
#include <itkImageIOFactory.h>
#include<itkMetaImageIOFactory.h>
#include<itkImageFileWriter.h>

int main()
{
    // 注册.mha文件IO
    //itk::ImageIOBase::RegisterDefaultIOFactory();
    itk::MetaImageIOFactory::RegisterOneFactory();
    // 定义图像类型
    typedef itk::Image<unsigned char, 3> ImageType;

    // 创建图像读取器
    typedef itk::ImageFileReader<ImageType> ReaderType;
    ReaderType::Pointer reader = ReaderType::New();
    reader->SetFileName(".\0.mha");

    // 读取图像
    try
    {
        reader->Update();

        // 获取图像信息
        ImageType::Pointer image = reader->GetOutput();
        ImageType::SizeType size = image->GetLargestPossibleRegion().GetSize();
        ImageType::SpacingType spacing = image->GetSpacing();

        // 输出图像信息
        std::cout << "Image size: " << size << std::endl;
        std::cout << "Image spacing: " << spacing << std::endl;

        typedef itk::ImageFileWriter<ImageType> FileWriterType;
        FileWriterType::Pointer w = FileWriterType::New();
        w->SetFileName(".\1.mha");
        w->SetInput(image);
        w->Update();

    }
    catch (itk::ExceptionObject& ex)
    {
        std::cerr << "Exception caught: " << ex << std::endl;
        return EXIT_FAILURE;
    }

    return EXIT_SUCCESS;
}

 

标签:itk,image,C++,mha,reader,include,ImageType,ITK
From: https://www.cnblogs.com/0523jy/p/17802713.html

相关文章

  • C++数据结构
    C++数据结构C/C++数组允许定义可存储相同类型数据项的变量,但是结构体是C++中另外一种用户自定义的可用的数据类型,它允许存储不同类型的数据项。结构用于表示一条记录,假设要跟踪图书馆书本的动态,可能需要跟踪每本书的下列属性:TitleAuthorSubjectBookID定义结构体......
  • C++基础杂记(2)
    将数组传入函数禁止修改数组的值函数的地址与函数的指针函数的指针数组函数的static与inline引用左值和引用传参C++11的数组for循环64位Linux操作系统中C++中常见基本类型所占字节数C++11类成员变量的初始化默认成员初始化器成员变量初始化列表委......
  • C++基础杂记(3)
    类的继承基类与派生类之间的构造行为在派生类中使用基类方法protected的访问权限多态公有继承关键字virtual示例抽象基类(ABC)私有继承和保护继承多重继承类的继承基类与派生类之间的构造行为派生类可以调用基类的公共成员,但无法调用基类的私有成员。所......
  • 继续更新完善:C++ 结构体代码转MASM32代码
    一、需求分析在用MASM32编程更新完善SysInfo的网络连接信息,用到了MIB_TCP6TABLE_OWNER_MODULE结构体:typedefstruct_MIB_TCP6TABLE_OWNER_MODULE{DWORDdwNumEntries;MIB_TCP6ROW_OWNER_MODULEtable[ANY_SIZE];}MIB_TCP6TABLE_OWNER_MODULE,*PMIB_T......
  • Opencascad开发(C++)-数据类型转换-Shape、Verterx和gp_pnt的转化
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录1、前言2、TopoDS_Shape与TopoDS_Vertex的转换2.1TopoDS_Shape到TopoDS_Vertex2.2TopoDS_Vertex到TopoDS_Shape3、TopoDS_Vertex与gp_Pnt3.1TopoDS_Vertex到gp_Pnt3.2gp_Pnt到TopoDS_Vertex1、前言在Open......
  • Opencascad(C++)-建模-创建有界直线段
    文章目录1、前言2、用gp_Lin创建一条直线2.1gp_Lin类成员函数2.2创建一条直线2.3运行结果3、创建一条有界的直线段3.1功能说明3.2函数说明3.2创建直线段的代码3.3测试效果1、前言在Opencascad开发时,经常会遇到创建直线的情况,采用gp_Line创建的直线段是无界的,如果想创建......
  • tdc++.so.6: version `GLIBCXX_3.4.29' not found
     001、python程序报错如下: 002、问题分析a、调用的是python程序b、libstdc++.so.6是c++标准库执行python程序时,需要调用c++标准库,libstdc++.so.6(lib=glib,6表示第6版),版本不匹配报错,无法找到:GLIBCXX_3.4.29。 003、确认调用的哪里的python程序(base)[b20223040......
  • c++ ftp上传下载
    #include<afxinet.h>intmain(){BOOLdRes,pRes;HINTERNEThInternet;HINTERNEThConnect;hInternet=InternetOpen("A3GSSample",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,INTERNET_FLAG_NO_CACHE_WRITE);if(NULL==hInternet){printf("Inter......
  • C++基本输入输出
    C++基本输入输出C++标准库提供了一组丰富的输入/输出功能。C++的I/O操作发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内流向设备(如显示器、打印机、磁盘驱动器、网络连接等),这叫做输出操作。I/O库头文件......
  • C++多线程——async、packages_task、promise
    异步编程async、future基本概念和使用:异步执行函数:std::async可以异步执行一个函数,这意味着函数将在后台线程中执行,而当前线程可以继续执行其他任务。返回值获取:你可以获得函数的返回值,或者得到一个std::future对象,它允许你在将来的某个时刻获取函数的结果。线程......