Как конвертировать DICOM из Monochrome 1 в Monochrome 2?

Я работаю над проектом с изображениями DICOM, в котором мне нужно сравнить два изображения DICOM. Проблема в том, что один в монохромном режиме 1, а другой в монохромном 2 (ноль означает белый и черный соответственно). Как я могу преобразовать эти интенсивности пикселей, чтобы сравнить их? Я использую инструментарий "Pydicom".

1 ответ

Ваша основная проблема не в фотометрической интерпретации (MONO1/2).

Вы не можете сравнивать пиксельные интенсивности двух изображений DICOM, если они не относятся к одному и тому же масштабу (например, единицы Хаунсфилда).

Если у вас есть

(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

Измеренные значения можно сравнить.

То же самое верно, если у вас есть нелинейная таблица модальности, хранящаяся в качестве справочной таблицы в заголовке, но те же ограничения применяются для Rescale Type.

В противном случае я бы воздержался от сравнения значений пикселей. Конечно, кажется, что легко просто инвертировать одно из двух изображений, но тот факт, что они имеют различную фотометрическую интерпретацию, говорит мне, что они были получены различными устройствами или методами. Это означает, что данные пикселей визуально корректны и сопоставимы, но не связаны математически.

Если это помогает, при визуализации с помощью matplotlib.pyplot вы можете использовать

plt.imshow(image, cmap='gray_r')

инвертировать пиксели обратно в Monochrome2 для визуального сравнения без изменения значений пикселей.

Также,

np.invert(image)

может быть обходным путем.

Другие вопросы по тегам