gpt4 book ai didi

dicom - 如何计算体素大小?

转载 作者:行者123 更新时间:2023-12-04 14:44:30 26 4
gpt4 key购买 nike

提供了来自 DICOM header 的以下信息,如何计算体素大小的第三个值?我假设前两个值是 0.515625 和 0.515625。

BitsAllocated: "16"
BitsStored: "12"
Columns: 512
HighBit: "11"
ImageOrientation: "1\0\0\0\-1\0"
ImagePosition: "-144\-34.7242241\925.599976"
ImageType: "ORIGINAL\PRIMARY\AXIAL\HELIX"
InstanceNumber: "456"
Modality: "CT"
PhotometricInterpretation: "MONOCHROME2"
PixelRepresentation: "0"
PixelSpacing: "0.515625\0.515625"
RescaleIntercept: "1"
Rows: 512
SamplesPerPixel: "1"
SeriesDescription: "CERVEAU SANS IV"
SeriesNumber: "3"
SliceThickness: "1.50"
WindowCenter: "00040\00040"
WindowWidth: "00120\00120"
imagesFormat: "jpg"
modality: "CT"
name: "soft tissue"
nodeId: "557621"
pixelHeight: "0.515625"
pixelWidth: "0.515625"

注意:我收到的是 JPEG 图像堆栈,而不是 DICOM,它带有一个文件,其中包含我在上面发布的值。如果需要,我可以返回并要求提供文件中的其他信息。

最佳答案

只给一个切片的标签,你必须使用SliceThickness作为第三个维度,尽管我建议不要这样做,因为这不能保证给出切片之间的距离。有标签SpacingBetweenSlices提供此信息,但在您的情况下似乎不存在。

最好的办法是利用ImagePositionPatient中的差异相邻切片之间。为此,您当然还需要下一个切片的标签。附带说明:在您的列表中,ImageOrientationImagePosition最好阅读 ImageOrientationPatientImagePositionPatient ,如 ImageOrientationImagePosition是其他标签(CT 图像中不存在)。

ImagePositionPatient给出 DICOM 患者坐标中切片左上角的位置,计算距离时必须考虑切片在该坐标系中的方向。这是由 ImageOrientationPatient 给出的,其中包含 DICOM 坐标中切片的归一化行和列方向余弦向量。您可以在 DICOM standard 中阅读。 .

方向矩阵的前两个分量由 ImageOrientationPatient 提供(例如第一个和第二个三个数字),第三个分量可以通过取这两个分量的叉积来计算。

因此,在伪代码中,这将如下所示:

orient1 = vector(ImageOrientationPatient[0], ImageOrientationPatient[1], ImageOrientationPatient[2])
orient2 = vector(ImageOrientationPatient[3], ImageOrientationPatient[4], ImageOrientationPatient[5])
orient3 = orient1 x orient2 // cross product
orient_matrix = matrix(orient1, orient2, orient3)

pos1 = vector(ImagePositionPatient[0], ImagePositionPatient[1], ImagePositionPatient[2]) // from current slice
pos2 = vector(ImagePositionPatient[0], ImagePositionPatient[1], ImagePositionPatient[2]) // from adjacent slice
diff_pos = pos2 - pos1

image_pos = orient_matrix o diff_pos / length(orient3) // normalized dot product

voxel_z = image_pos.z

更新:正如@gofal 所指出的,第一个版本不正确。我还包括了规范化(例如,由 length(orient3) 删除),但严格来说,这些值应该已经规范化了。

关于dicom - 如何计算体素大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65389506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com