vtkNIFTIImageReader读写方位以及原点信息

        使用vtkNIFTIImageReader读取体数据为vtkImageData时只会携带spacing信息,方向和原点信息不会写入,需要获取QFormMatrix进行解析。

1、方向及原点读取
	vtkSmartPointer<vtkNIFTIImageReader> niiReader = vtkSmartPointer<vtkNIFTIImageReader>::New();
	niiReader->SetFileName(path.c_str());
	niiReader->Update();
	vtkMatrix4x4* transform_matrix = niiReader->GetQFormMatrix();

        获取4*4矩阵后使用GetElement(int i, int j)获取索引值,前三列为三个轴的方向,最后一列为偏移量也就是数据原点位置。

        vtk里面采用的RAS右手坐标系,dicom坐标系以及主流看图ITK-Snap等软件采用的LPS坐标系,所以原点等信息需要换算一下。

        

                                                   图一:dicom坐标系

2、方向及原点写入

        例:LPS坐标系信息写入

  vtkSmartPointer<vtkMatrix4x4> matrix = vtkSmartPointer<vtkMatrix4x4>::New();  // 坐标系设为LPS
    const double matrix_elemnt[16] = {
       -1,  0, 0, origin[0] * -1,
        0, -1, 0, origin[1] * -1,
        0,  0, 1, origin[2] * 1,
        0,  0, 0, 1
    };
    matrix->DeepCopy(matrix_elemnt);

    vtkSmartPointer<vtkNIFTIImageWriter> niiWriter = vtkSmartPointer<vtkNIFTIImageWriter>::New();
    niiWriter->SetFileName(file_name.c_str());
    niiWriter->SetInputData(data);
    niiWriter->SetQFormMatrix(matrix);
    niiWriter->Write();

相关推荐

  1. .SVN 信息泄露漏洞原理以及修复方法

    2024-02-03 01:48:01       47 阅读
  2. Linux基础 - Linux ARM 原子

    2024-02-03 01:48:01       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-03 01:48:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-03 01:48:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-03 01:48:01       87 阅读
  4. Python语言-面向对象

    2024-02-03 01:48:01       96 阅读

热门阅读

  1. numpy的学习之1

    2024-02-03 01:48:01       53 阅读
  2. Android 8.1 输入框返回键改为删除功能

    2024-02-03 01:48:01       52 阅读
  3. 面试手写第三期

    2024-02-03 01:48:01       55 阅读
  4. 网络通信--术语对照表

    2024-02-03 01:48:01       52 阅读
  5. ubuntu安装redis记录

    2024-02-03 01:48:01       63 阅读
  6. QT 加载 mysql 驱动

    2024-02-03 01:48:01       57 阅读
  7. 【笔记】SPN和PLMN 运营商网络名称显示

    2024-02-03 01:48:01       120 阅读
  8. <网络安全>《13 上网行为管理》

    2024-02-03 01:48:01       55 阅读
  9. SpringCloud引入父项目需要注意的地方

    2024-02-03 01:48:01       53 阅读