我对rescale斜率和渐升截距在CT DICOM中没有几个问题。
发布于 2012-04-17 19:30:13
正如标签0028,1054中所指定的,渐变斜率和渐强截取允许将像素值转换为HU或其他单元。
对于CT图像,单元应该是HU (Hounsfield),当标签0028,1054不存在时,默认值实际上是HU。然而,标签可能存在并且可以指定不同的单元(OD=optical密度,US=unspecified)。
渐升斜率和截距由硬件制造商决定。
如果从原始像素值到Hounsfield或光密度的转换不是线性的,则应用LUT。
请查看标准C.11的第3部分,以获得更详细的信息,以及这个答案Window width and center calculation of DICOM image。
发布于 2019-09-19 20:37:43
这就是我的实现:
def window_ct(dcm, w, c, ymin, ymax):
"""Windows a CT slice.
http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.11.2.html
Args:
dcm (pydicom.dataset.FileDataset):
w: Window Width parameter.
c: Window Center parameter.
ymin: Minimum output value.
ymax: Maximum output value.
Returns:
Windowed slice.
"""
# convert to HU
b = dcm.RescaleIntercept
m = dcm.RescaleSlope
x = m * dcm.pixel_array + b
# windowing C.11.2.1.2.1 Default LINEAR Function
#
y = np.zeros_like(x)
y[x <= (c - 0.5 - (w - 1) / 2)] = ymin
y[x > (c - 0.5 + (w - 1) / 2)] = ymax
y[(x > (c - 0.5 - (w - 1) / 2)) & (x <= (c - 0.5 + (w - 1) / 2))] = \
((x[(x > (c - 0.5 - (w - 1) / 2)) & (x <= (c - 0.5 + (w - 1) / 2))] - (c - 0.5)) / (w - 1) + 0.5) * (
ymax - ymin) + ymin
return yhttps://stackoverflow.com/questions/10193971
复制相似问题