Нахождение координат (мм) идентичных местоположений срезов для двух наборов данных MR, полученных в одном сеансе сканирования
У меня есть два приобретения МР, где первое - это 3D-изображение (1x1x1 мм3), а второе - 2D-изображение (2,24 x 2,24 x 5,00 мм, осевые срезы). Набор данных с высоким разрешением представляет собой 3D-съемку с полной головкой, которая дает 176 срезов, если они были размещены в осевом направлении (ориентация была первоначально саггитальной при съемке). Двухмерное получение содержит только 3 осевых среза, которые были выбраны для нацеливания на определенные области мозга и были получены непрерывно.
Можно ли узнать, какие срезы в 3D-наборе данных высокого разрешения точно соответствуют 3 срезами в 2D-наборе данных, если предположить, что объект не перемещался между сканированиями и что эти наборы данных были получены в одном сеансе сканирования? Я смотрю на dicoms для этих двух наборов данных и пытаюсь использовать теги ImageOrientationPatient и ImagePositionPatient, чтобы попытаться точно выяснить, какими будут координаты срезов в 2D-сканировании относительно изоцентра магнита. Таким образом, я могу сказать точные координаты первого среза в двумерном захвате относительно изоцентра магнита и, предполагая, что два скана имеют одно и то же начало, я могу тогда точно знать, какому осевому срезу в трехмерном сканировании соответствуют координаты? Проблема, с которой я сталкиваюсь, состоит в том, что векторы ImageOrientationPatient различны для обоих приобретений, поскольку высокие значения были получены с помощью сагиттальной ориентации ориентации (хотя 3d и могут получать срезы в любом направлении), тогда как 2D-данные были получены именно как осевые срезы.
Может ли кто-нибудь, имеющий опыт работы с dicom, любезно пролить свет на то, как я могу связать два скана? Поскольку это был один и тот же сеанс сканирования, я предполагаю, что исходное положение для этих двух приобретений должно быть идентичным. Это верно?
1 ответ
ImagePositionPatient надежно ссылается на идентичные системы координат только тогда, когда все изображения были сделаны в одном сканировании. К сожалению, не существует "калибровки для пациента", которая гарантирует, что конкретная координата всегда ссылается на одну и ту же позицию у одного и того же пациента.
Предполагая, что это именно тот случай, когда вы сканируете, задача довольно проста. Полная геометрия каждого сканирования определяется:
- ImagePositionPatient (0020,0032) - координата верхнего левого пикселя каждого среза
ImageOrientationPatient (0020,0037) - векторы ориентации каждого среза, то есть оси, по которым выровнены строки и столбцы пикселей
PixelSpacing (0028,0030) - высота и ширина (да, размер y здесь на первом месте!) Каждого пикселя
Теперь, когда вы точно знаете положение каждого пикселя каждого среза в обоих сканированиях, остальная задача состоит в том, чтобы выразить верхние левые пиксели 2D-сканирования в размерах 3D-сканирования. Я бы использовал преобразование координат, чтобы сделать это, но другие методы также будут работать.