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

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


person Sean M    schedule 30.03.2017    source источник
comment
Какой инструментарий DICOM вы используете?   -  person Anders Gustafsson    schedule 30.03.2017
comment
я использую пидиком   -  person Sean M    schedule 30.03.2017


Ответы (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 нелинейной модальности, хранящийся в виде таблицы поиска в заголовке, но те же ограничения применяются для типа масштабирования.

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

person kritzel_sw    schedule 30.03.2017
comment
Спасибо! Это очень хорошо знать. Я столкнулся с единицами Хаунсфилда, когда проводил небольшое фоновое исследование, но у меня сложилось впечатление, что они годны только для КТ. Справедливы ли они и для обычного рентгена? - person Sean M; 30.03.2017
comment
Нет, они не могут. Рентгеновские лучи представляют собой проекционные изображения, поэтому пиксели содержат совокупность всех тканей, через которые прошел луч. HU относятся к плотности ткани, поэтому они не имеют смысла в проекционных изображениях. - person kritzel_sw; 31.03.2017
comment
Я понимаю. Есть ли правильный способ сравнить интенсивность пикселей двух проекционных изображений? - person Sean M; 31.03.2017
comment
but the fact that they have different Photometric Interpretation...... некоторые устройства CR/DX, с которыми я сталкивался, предоставляют конфигурацию для установки типа вывода. Кроме того, некоторые устройства выводят только необработанные данные. Другое приложение (обычно в комплекте с устройством) интерпретирует его как монохромное 1 или 2, а затем преобразует в DICOM. - person Amit Joshi; 31.03.2017
comment
Стилли Я утверждаю, что если изображения не относятся к обычно используемому масштабу, они согласуются друг с другом, но не друг с другом. Например. более высокая доза облучения, воздействующая на одну и ту же часть тела, даст разную интенсивность, даже если оба изображения точно совпадают по положению, полю зрения и исследуемой части тела. - person kritzel_sw; 03.04.2017

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

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

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

Также,

np.invert(image)

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

person jjjshade    schedule 27.03.2019