dicomreadVolume

Создайте 4-D том из набора изображений DICOM

Описание

пример

V = dicomreadVolume(source) создает 4-D объем, V, из набора файлов Digital Imaging and Communications in Medicine (DICOM), заданных source. dicomreadVolume функция определяет правильный порядок изображений и создает 4-D объем.

Примечание

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

V = dicomreadVolume(sourcetable) создает 4-D том DICOM из входного файла, указанного в sourcetable. Таблица должна содержать только одну строку, которая задает метаданные для тома DICOM.

пример

V = dicomreadVolume(sourcetable,rowname) создает 4-D том DICOM из входного файла, указанного в rowname таблицы с несколькими строками. Используйте этот синтаксис при sourcetable содержит несколько строк.

пример

V = dicomreadVolume(___,'MakeIsotropic',tf) создает изотропный том 4-D DICOM из входных данных изображения DICOM с помощью входных параметров в предыдущих синтаксисах. Используйте этот синтаксис, чтобы создать изотропный том DICOM из набора неизотропных данных изображения DICOM.

[V,spatial] = dicomreadVolume(___) также возвращает структуру, spatial, который описывает местоположение, разрешение и ориентацию входных данных DICOM.

пример

[V,spatial,dim] = dicomreadVolume(___) также возвращает размерность, которая имеет наибольшую величину смещения между двумя смежными срезами во входных данных DICOM.

Примеры

свернуть все

Загрузите данные тома из папки, содержащей файлы изображений DICOM. Используйте squeeze функция для удаления любых синглтонных размерностей.

[V,spatial,dim] = dicomreadVolume(fullfile(matlabroot,'toolbox/images/imdata/dog'));
V = squeeze(V);

Отображение 4-D тома DICOM. Сгенерируйте карту цвета и альфа-карту (прозрачность) для изображений магнитного резонанса (MR).

intensity = [0 20 40 120 220 1024];
alpha = [0 0 0.15 0.3 0.38 0.5];
color = ([0 0 0; 43 0 0; 103 37 20; 199 155 97; 216 213 201; 255 255 255])/ 255;
queryPoints = linspace(min(intensity),max(intensity),256);
alphamap = interp1(intensity,alpha,queryPoints)';
colormap = interp1(intensity,color,queryPoints);

Настройка панели отображения.

ViewPnl = uipanel(figure,'Title','4-D Dicom Volume');

Просмотрите том с пользовательской цветовой картой и альфа-картой.

volshow(V,'Colormap',colormap,'Alphamap',alphamap,'Parent',ViewPnl);

Отобразите возвращенную пространственную структуру из dicomreadVolume. Структура содержит пространственную информацию о входных файлах изображений DICOM.

spatial
spatial = struct with fields:
       PatientPositions: [22×3 double]
          PixelSpacings: [22×2 double]
    PatientOrientations: [2×3×22 double]

Отображение информации о размерности из dicomreadVolume. Значение задает, что смещение среза самое большое вдоль z-размерность.

dim
dim = 3

Собирайте сведения о файлах DICOM, содержащихся в папке, используя dicomCollection функция. Функция возвращает подробные данные доступных метаданных DICOM в форме таблицы.

sourcetable = dicomCollection(fullfile(matlabroot,'toolbox/images/imdata'));

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

sourcetable
sourcetable=5×14 table
             StudyDateTime             SeriesDateTime           PatientName      PatientSex    Modality    Rows    Columns    Channels    Frames    StudyDescription    SeriesDescription                             StudyInstanceUID                                                     SeriesInstanceUID                                                                                  Filenames                                                     
          ____________________    ________________________    _______________    __________    ________    ____    _______    ________    ______    ________________    _________________    __________________________________________________________________    __________________________________________________________________    ___________________________________________________________________________________________________________________

    s1    30-Apr-1993 11:27:24    {[30-Apr-1993 11:27:24]}    "Anonymized"          ""           "CT"      512       512         1           1      "RT ANKLE"          ""                   "1.2.840.113619.2.1.1.322987881.621.736170080.681"                    "1.2.840.113619.2.1.2411.1031152382.365.736169244"                    {["Y:\jobarchive\Bdoc19b\2019_05_27_h05m12s43_job1128383_pass\matlab\toolbox\images\imdata\CT-MONO2-16-ankle.dcm"]}
    s2    14-Dec-2013 15:47:31    {[14-Dec-2013 15:54:33]}    "GORBERG MITZI"       "F"          "MR"      512       512         1          22      "CSP"               "AX T2"              "1.2.840.113619.2.244.3596.11880862.13689.1386517653.214"             "1.2.840.113619.2.244.3596.11880862.13689.1386517653.217"             {22×1 string                                                                                                      }
    s3    03-Oct-2011 19:18:11    {[03-Oct-2011 18:59:02]}    ""                    "M"          "MR"      512       512         1           1      "RIGHT KNEE"        ""                   "1.3.6.1.4.1.9590.100.1.2.320418845013189618318250681693358291211"    "1.3.6.1.4.1.9590.100.1.2.287740981712351622214874344032214809569"    {["Y:\jobarchive\Bdoc19b\2019_05_27_h05m12s43_job1128383_pass\matlab\toolbox\images\imdata\knee1.dcm"            ]}
    s4    03-Oct-2011 19:18:11    {[03-Oct-2011 19:05:04]}    ""                    "M"          "MR"      512       512         1           1      "RIGHT KNEE"        ""                   "1.3.6.1.4.1.9590.100.1.2.320498134711034521212730362051554545799"    "1.3.6.1.4.1.9590.100.1.2.316302984111738034326701385064023497963"    {["Y:\jobarchive\Bdoc19b\2019_05_27_h05m12s43_job1128383_pass\matlab\toolbox\images\imdata\knee2.dcm"            ]}
    s5    30-Jan-1994 11:25:01    {0×0 double            }    "Anonymized"          ""           "US"      430       600         1          10      "Echocardiogram"    "PS LAX MR & AI"     "999.999.3859744"                                                     "999.999.94827453"                                                    {["Y:\jobarchive\Bdoc19b\2019_05_27_h05m12s43_job1128383_pass\matlab\toolbox\images\imdata\US-PAL-8-10x-echo.dcm"]}

Создайте 4-D том DICOM из изображения DICOM, установленного в таблице. Укажите имя строки, содержащей требуемый набор изображений DICOM. Установите параметр 'MakeIsotropic' на true для порядка изотропного объема. Используйте squeeze функция для удаления любых синглтонных размерностей.

V = dicomreadVolume(sourcetable,'s2','MakeIsotropic',true);
V = squeeze(V);

Отображение объема изотропного 4-D DICOM при помощи volshow функция. Сгенерируйте карту цвета и альфа-карту (прозрачность) для изображений MR.

intensity = [0 20 40 120 220 1024];
alpha = [0 0 0.15 0.3 0.38 0.5];
color = ([0 0 0; 43 0 0; 103 37 20; 199 155 97; 216 213 201; 255 255 255])/255;
queryPoints = linspace(min(intensity),max(intensity),256);
alphamap = interp1(intensity,alpha,queryPoints)';
colormap = interp1(intensity,color,queryPoints);

Настройка панели отображения.

ViewPnl = uipanel(figure,'Position',[0 0 1 1],'Title','Isotropic 4-D Dicom Volume');

Просмотрите том с пользовательской цветовой картой и альфа-картой.

volshow(V,'Colormap',colormap,'Alphamap',alphamap,'CameraPosition',[3 3 4],'Parent',ViewPnl);

Входные параметры

свернуть все

Папка объемных данных или файлы, заданные как строковый скаляр, вектор символов, строковые массивы или массив ячеек из векторов символов.

Типы данных: char | string

Набор метаданных файла DICOM, заданный как таблица, возвращенная dicomCollection.

Типы данных: table

Имя строки таблицы в виде строкового скаляра или вектора символов. Имя идентифицирует одну из строк в таблице с несколькими строками, указанной в sourcetable.

Типы данных: char | string

Создайте изотропный объем, заданный в качестве одного из следующих значений.

  • false или 0 - создайте 4-D том DICOM из входных данных.

  • true или 1 - создайте изотропный том 4-D DICOM.

Входами могут быть как изотропные, так и неизотропные данные DICOM.

Выходные аргументы

свернуть все

4-D том DICOM, возвращенный как числовой массив.

Размерности V являются [rows, columns, samples, slices], где samples количество цветовых каналов на воксель. Для примера объемы полутонового цвета имеют одну выборку, а объемы RGB - три выборки. Используйте squeeze функция для удаления любых синглтонных размерностей, например, когда выборка равна 1.

4-D array depicted as groups of 3-D grayscale volumes of size rows-by-colums-by-samples.

Расположение, разрешение и ориентация срезов, собранных из метаданных входных изображений DICOM, возвращаются как структура со следующими полями.

Пространственная структура

ОбластиОписание
PatientPositions(x, y, z) триплет первого пикселя в каждом срезе, измеренный в миллиметрах от источника системы сканера
PixelSpacings Расстояние между соседними строками и столбцами внутри каждого среза, в миллиметрах
PatientOrientations Пара триплетов направление-косинус, которые обозначают направление строк и столбцов в каждом срезе относительно положения пациента

Для получения дополнительной информации об атрибутах DICOM смотрите часть 3 стандарта DICOM, раздел C.7.6.2.

Размерность с наибольшим смещением, возвращенная как 1, 2, или 3. Значение обозначает размерность в 3-D системе координат, которая имеет наибольшее количество смещения между смежными срезами во входных данных DICOM.

  • Если самое большое смещение по размерности x, то dim равен 1.

  • Если самое большое смещение по размерности y, то dim равен 2.

  • Если самое большое смещение вдоль размерности z, то dim 3.

Введенный в R2017b