c++ - 使用 ITK 操作 Nifti 图像

标签 c++ vtk itk

我正在尝试编写一个简单的程序来使用 ITK 库读取或可视化 nifti 图像。

  using PixelType = unsigned char;
  using ImageType = itk::Image< PixelType, Dimension >;
  using ReaderType = itk::ImageFileReader< ImageType >;
  ReaderType::Pointer reader = ReaderType::New();
  reader->SetFileName(argv[1]);
  reader->Update();
  ImageType::Pointer image = reader->GetOutput();

从这些代码行中,我可以访问维度数和像素类型。但是,我仍然不知道如何访问图像的像素值?我想我应该让 3D 数组包含不同的像素值(代表 nifti 图像)。我应该解决哪些方法?

此外,我曾尝试使用 VTK 来可视化图像,并为图像创建新格式(PNG 或 PPM),但我做不到。非常感谢任何代码示例。谢谢!

编辑:

我现在可以在将 DS PixelType 转换为 int 后获取像素值。谢谢。

但是,当我使用 ImageToVTKImageFilter.cxx 类时,我附上了屏幕截图,但我看不到任何图像。如果我将鼠标移到它上面,它会变得更亮。你对此有什么解释吗?

image visualization

最佳答案

您应该阅读 ITK 软件指南,第 4.1.3 节访问像素数据 [link] . Example读取和可视化二维图像。另一个example (可能支持 3D 图像)。

关于c++ - 使用 ITK 操作 Nifti 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50104793/

相关文章:

c++ - SQLite C/C++ API 无符号字符 *

c++ - 将 uint64_t 转换为 std::string

c++ - 使用 ITK 库的错误和警告

c++ - vtkResliceImageViewer 显示不正确(太暗)的 dicom 图像

c++ - WINFORM C++ Managed string->unmanaged string 在与 fstream 结合使用时产生意外结果

c++ - 在 C++ 中使用迭代器同时迭代多个不同大小列表的最佳方法是什么?

python - 在 Windows 上安装 MayaVi,使用 Python 2.7

c++ - 在 VTK 帧缓冲区和 OpenCV Mat 数据之间转换

computational-geometry - vtk中顶点和点的区别

python - 如何使用 Python 绑定(bind)在 ITK 中创建网格对象?