我正在开发一个带有DICOM图像的项目,我需要比较两个DICOM图像。问题是,一个是单色1,另一个是单色2(零分别表示白色和黑色)。如何转换这些像素强度来比较它们?我正在使用“pydicom”工具包。
您的主要问题不是光度学解释(MONO1 / 2)。
您无法比较两个DICOM图像的像素强度,除非它们指的是相同的比例(例如Hounsfield单位)。
如果你有
(0028,1052) RescaleIntercept - present with any value
(0028,1053) RescaleSlope - present with any value
(0028,1054) RescaleType - present with value "OD" or "HU"
然后很容易:应用线性变换:
<measured value> = <pixel value> * RescaleSlope + RescaleIntercept
可以比较测量值。
如果在标题中将非线性模态LUT存储为查找表,则情况也是如此,但同样的限制适用于重新缩放类型。
否则我会避免比较像素值。当然,看起来很容易只是反转两个图像中的一个,但是它们具有不同的光度解释这一事实告诉我它们已被不同的设备或技术所取代。这意味着,像素数据在视觉上是正确的并且是可比较的,但在数学上并不相关。
如果它有帮助,当使用matplotlib.pyplot进行可视化时,您可以使用
plt.imshow(image, cmap='gray_r')
将像素反转回Monochrome2进行视觉比较而不改变像素值。
也,
np.invert(image)
可能是一个解决方案。