c++ - 使用 ITK 将物理点转换为索引

标签 c++ dicom itk

我正在尝试沿着轨迹获取 HU 值。使用 Matlab 在网格文件上计算目标坐标和该目标的切线(因此轨迹),给出一组 xyz 坐标和方向 vector (切线)。然后,我使用 ITK 在 C++ 中加载 dicom 文件(从中提取网格,但不是用于获取网格的二进制掩码本身)。然后,我使用函数 image->TransformPhysicalPointToIndex(point, pixelIndex);。我读取了目标的目标 x、y、z 坐标,并构造了一个 double[3] vector ,其坐标距目标每 0.02 毫米,直到距目标 2 毫米。当我调用函数 image->TransformPhysicalPointToIndex(point, pixelIndex); 时,它总是返回 false,因为点不在图像中。 因此,在默认值之后,我将图像的原点更改为元数据中带有标签 (0020|0032) Image Position (Patient) = -3.125-12\13.125 的值。

有了这个,所有的物理点都在图像中,但 HU 值是错误的(像素索引在左上角,而不是右下角)。 任何人都可以让我知道完成此任务需要遵循的步骤吗?

最佳答案

你可以反转ImageDirections ,通过将每个行 vector 乘以 -1。但是您还需要将原点移动到右下角以保持物理图像范围相同。

关于c++ - 使用 ITK 将物理点转换为索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42908745/

相关文章:

c++ - 这些带有 char 数组的新表达式中哪些是格式良好的?

c++ - 变量 'sortArray'周围的堆栈已损坏

java - Windows 64 上的 DICOM 图像到 BufferedImage

python-2.7 - 使用VTK转换DICOM图像

qt - 一个很好的图像(DICOM)数据操作、可视化和开发框架

c++ - 取消定义符号 vtkImageViewer2::New(), QT-VTK Mac OSX 10.6.8

c++ - 将ITK(Insight Toolkit)集成到自己的项目中

c++ - 公共(public)变量不良做法与 Getters 和 Setters 函数?

c++ - 将字符串传递给 ns3::Ipv4AddressHelper::SetBase 方法

dicom - 使用 DCMTK 从 Jpeg 2000 转换为 DICOM