python中的CT图像预处理?

问题描述

我有一个原始形式的汽车发动机 3D CT 图像,没有标题信息。当作为 16 位无符号整数加载到 numpy 数组中时,我注意到值的范围在 0 到 52000 之间。这对于 CT 图像是否正常?查看图像时,我还注意到每个切片中都有很多类似云的噪声。我正在尝试使用深度学习方法提取特征。这是我第一次使用 CT 图像。这样的CT图像需要什么预处理?

解决方法

由于是 16 uint 格式,取值范围可以是 0 ~ 2 ^ 16 也就是 65535,所以 0 ~ 52000 是非常合理的。如果它是汽车引擎而不是软组织,那么您可能不需要那么大的范围,您可以通过对其应用窗口和调平将数据减少到 12 位甚至 8 位而不会丢失太多细节。

对于“像云一样的噪音”,请上传一些图片以显示确切的问题。如果我的猜测是正确的,那可能是由于字节序。尝试使用 ImageJ 打开原始数据并尝试 16 uint little-endian 和 big-endian,其中之一可能会给您正常图像。

,

根据我处理软组织 CT 医学图像的经验,我看到 CT 对空气的强度为 -1024,对松质骨的强度高达 +3000。当涉及金属类电极甚至牙齿图像时,它高达+9000。所以我猜对于像汽车引擎这样的重金属,52000的强度值应该不是畸变(虽然我至今没听过汽车引擎的CT图像!)。

预处理可以包括加窗或归一化操作和噪声去除。窗口化是这里已经提到的用于将强度范围重组为更可行的范围。