DICOM мультипланарная реконструкция изображения - PullRequest
0 голосов
/ 16 октября 2019

Моя проблема в том, что мне нужно разработать программу, которая может открывать изображения DICOM CT в C # (без какой-либо библиотеки), а также обрабатывать осевые, корональные и сагиттальные изображения. Я понял это, но разрешение коронального и сагиттального изображений не является правильным. Я проверил миллион форумов и вопросов, но у меня просто не было правильного способа найти корональные сагиттальные разрешения. Если кто-то может дать мне формулу или что-то еще, я был бы очень счастлив.

Насколько я понял, это информация, необходимая для получения разрешения:

  • Ширина и высота: 512x512
  • Количество изображений: 518
  • (0018, 0050) Толщина среза: 1,25
  • (0018, 0080) Расстояние между срезами: 0,625
  • (0028), 0030) Пиксельное расстояние: 0,845703 / 0,845703

Но я вычисляю расстояние между кусками из (0020, 0032) положения изображения (пациента), которое составляет 0,625, и я действительно не знаю, чтосвязь между этой информацией, какова формула, чтобы получить правильное разрешение. И мой точный вопрос: каково разрешение корональных и сагиттальных изображений?

Если вам, ребята, нужна дополнительная информация о срезах, просто дайте мне знать. Заранее спасибо:)

РЕДАКТИРОВАТЬ: Я проверил с помощью RadiAnt DICOM Viewer, что корональное / сагиттальное разрешение должно быть 512x383. Если кто-нибудь знает формулу, почему результат 383. Пожалуйста, дайте мне знать. А пока попробую сам разобраться.

Ответы [ 3 ]

2 голосов
/ 22 октября 2019

нет четкого ответа для разрешения. Вы не должны забывать, что в DICOM у вас есть PixelSpacing , которого у вас нет в «обычных изображениях».

типичное изображение всегда должно иметь равноотстоящую сетку, чтобы правильно отображаться на экране,Но в dicom вы можете получить изображение с разрешением 100x100 пикселей и размером пикселя 1,0 \ 1,0, а изображение с разрешением 100x200 пикселей и расстоянием между пикселями 1,0 \ 0,5. Действительный DICOM-Viewer будет отображать оба изображения одинаково. второе изображение имеет больше пикселей, но они меньше. в результате получается то же изображение, что и у первого изображения.

Так что очевидно, что высота стопки изображений составляет 518 * 0,625 = 323,75 мм. Таким образом, у вас есть много возможностей:

  • Вы можете создать изображение 512x324 , установить для пикселя интервал 0.845703 \ 1.0 и рассчитать (интерполировать) z-значения.
  • Лучшим решением было бы взять данные пикселей такими, какие они есть, без какой-либо интерполяции, без потери данных. Тогда у вас есть сетка 512x518 пикселей. интервал пикселей будет 0,845703 \ 0,625 . Это связано с тем, что расстояние по оси x определяется расстоянием между пикселями в исходных данных, а расстояние по оси Y - это расстояние между срезами.
  • Но: есть некоторые DICOM-зрители, которые неправильно обрабатывают неэквидистантные пиксели. Если вы экспортируете изображение в jpegs и позволяете окну / браузеру отображать изображение, то вам нужны эквидистантные пиксели. Поэтому вы должны выбрать количество пикселей, чтобы в сумме высота составляла 323,75 мм, когда у вас расстояние между пикселями 0,845703 мм. Это 323,75 / 0,845703 = 382,817 ~ 383 пикселей. Таким образом, если вы генерируете 512x383 пиксельное изображение, где вам необходимо выполнить интерполяцию срезов, вы можете создать изображение с равноотстоящим интервалом в пикселях 0.845703 \ 0.845703 .
1 голос
/ 16 октября 2019

Я предполагаю:

  1. "Количество серий": 518 следует читать "Количество изображений ": 518?
  2. Интервал между срезами = длина разностного вектора положения изображения пациента между двумя смежными срезами (значение в заголовке DICOM должно совпадать с вычисленным значением. Если нет, я бы рекомендовал использовать рассчитанное значение).

В этом случае:

Разрешение саггитальных сил = Разрешение корональных срезов = 512 срезов, каждый с 512x518 пикселей (Сагиттальный: высота * количество срезов, Корональный: ширина * количество срезов)

Пиксельный интервал саггитальный = пиксельный интервал корональный = 0,845703 * 0,625.

Расстояние среза сагиттальный = расстояние среза коронное = 0,845703 мм

Примечание: Настоятельно рекомендуется использовать инструментарий DICOM для чтения срезов. Тот факт, что вы можете прочитать этот конкретный экзамен, не говорит о том, что вы способны прочитать любой экзамен. В правилах низкоуровневого кодирования DICOM много подводных камней.

0 голосов
/ 16 октября 2019

Я думаю, что мне удалось найти близкое решение. 1-2 пикселя от версии RadiAnt, но это лучшее, что я смог получить:

Высота коронального изображения / Сагиттальная ширина изображения: количество изображений * интервал между срезами / интервал между пикселями

Например: 518 * 0,625 / 0,845703 = 382

Разрешение изображения RadiAnt: 512x383. Разрешение моего изображения: 512x382

Это решение подходит для некоторых исследований, которые я тестировал, но не для одного или двух из Интернета. Как сказал kritzel_sw , это может варьироваться. Надеюсь, что это немного поможет и кому-то еще.

...