Масштабирование масштабирования и масштабирование перехвата
У меня есть несколько вопросов по поводу изменения масштаба наклона и пересчета изменения масштаба в CT DICOM:
- Используются ли они для передачи исходных данных со сканера в набор данных Хаунсфилда, в котором вода равна 0, а воздух - -1000?
- Я в группе отображения изображений. Как узнать наклон изменения масштаба и значения перехвата пересчета?
- Каково точное значение уклона масштабирования и пересечения масштабирования? Как они определяются?
Ответы
Ответ 1
Сброс масштабирования и перекрестный перехват позволяют преобразовать значения пикселей в HU или другие единицы, как указано в теге 0028,1054.
Для изображений КТ блок должен быть HU (Hounsfield), а значение по умолчанию действительно HU, когда тег 0028,1054 отсутствует.
Тем не менее, тег может присутствовать и может указывать другой блок (OD = оптическая плотность, US = неуказанный).
Наклон масштабирования и перехват определяются изготовителем аппаратного обеспечения.
Если преобразование из исходных значений пикселей в Hounsfield или оптическую плотность не является линейным, тогда применяется LUT.
Более подробную информацию см. в части 3 стандарта C.11, а также этот ответ Ширина окна и централизованное вычисление изображения DICOM
Ответ 2
Это моя реализация:
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 y