Я работаю над проектом с изображениями DICOM, где мне нужно сравнить два изображения DICOM. Проблема в том, что один в монохромном режиме 1, а другой в монохромном режиме 2 (ноль означает белый и черный соответственно). Как я могу преобразовать эти интенсивности пикселей, чтобы сравнить их? Я использую набор инструментов "pydicom".
Как преобразовать DICOM из Monochrome 1 в Monochrome 2?
Ответы (2)
Ваша главная проблема не в фотометрической интерпретации (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
Измеренные значения можно сравнивать.
То же самое верно, если у вас есть LUT нелинейной модальности, хранящийся в виде таблицы поиска в заголовке, но те же ограничения применяются для типа масштабирования.
В противном случае я бы воздержался от сравнения значений пикселей. Конечно, кажется, что просто инвертировать одно из двух изображений, но тот факт, что они имеют разную фотометрическую интерпретацию, говорит мне о том, что они были получены с помощью разных устройств или методов. Это означает, что данные пикселей визуально правильны и сопоставимы, но не связаны математически.
but the fact that they have different Photometric Interpretation......
некоторые устройства CR/DX, с которыми я сталкивался, предоставляют конфигурацию для установки типа вывода. Кроме того, некоторые устройства выводят только необработанные данные. Другое приложение (обычно в комплекте с устройством) интерпретирует его как монохромное 1 или 2, а затем преобразует в DICOM.
- person Amit Joshi; 31.03.2017
Если это поможет, при визуализации с помощью matplotlib.pyplot вы можете использовать
plt.imshow(image, cmap='gray_r')
инвертировать пиксели обратно в Monochrome2 для визуального сравнения без изменения значений пикселей.
Также,
np.invert(image)
может быть обходным путем.