При записи измененного изображения в файл DICOM вы можете хотеть сделать измененное изображение запуском нового ряда. В стандарте DICOM изображения могут быть организованы в ряд. Когда вы пишете изображение с метаданными к файлу DICOM, dicomwrite
помещает изображение в тот же ряд по умолчанию. Чтобы создать новый ряд, необходимо присвоить новый уникальный идентификатор DICOM полю метаданных SeriesInstanceUID
. Следующий пример иллюстрирует этот процесс.
Считайте изображение из файла DICOM в рабочую область MATLAB®.
I = dicomread('CT-MONO2-16-ankle.dcm');
Чтобы просмотреть изображение, используйте или функций отображения тулбокса imshow
или imtool
. Поскольку данные изображения DICOM подписываются 16-битные данные, необходимо использовать автомасштабирующийся синтаксис.
imtool(I,'DisplayRange',[])
Считайте метаданные из того же файла DICOM.
info = dicominfo('CT-MONO2-16-ankle.dcm');
Чтобы идентифицировать ряд, изображение принадлежит, просмотрите значение поля SeriesInstanceUID
.
info.SeriesInstanceUID
ans = 1.2.840.113619.2.1.2411.1031152382.365.736169244
Вы обычно только запускаете новую серию DICOM, когда вы изменяете изображение в некотором роде. Этот пример удаляет весь текст из изображения.
Пример находит максимальные и минимальные значения всех пикселей в изображении. Пиксели, которые формируют белые текстовые символы, установлены в максимальное пиксельное значение.
max(I(:))
ans = 4080
min(I(:))
ans = 32
Чтобы удалить эти текстовые символы, пример устанавливает все пиксели с максимальным значением к минимальному значению.
Imodified = I; Imodified(Imodified == 4080) = 32;
Просмотрите обработанное изображение.
imshow(Imodified,[])
Сгенерируйте новый уникальный идентификатор DICOM (UID) с помощью функции dicomuid
. Вам нужен новый UID, чтобы записать измененное изображение как новый ряд.
uid = dicomuid
uid = 1.3.6.1.4.1.9590.100.1.1.56461980611264497732341403390561061497
dicomuid
, как гарантируют, сгенерирует уникальный UID.
Установите значение поля SeriesInstanceUID
в метаданных, сопоставленных с исходным файлом DICOM к сгенерированному значению.
info.SeriesInstanceUID = uid;
Запишите измененное изображение в новый файл DICOM, задав измененную структуру метаданных, info
, в качестве аргумента. Поскольку вы устанавливаете значение SeriesInstanceUID
, изображение, которое вы пишете, является частью нового ряда.
dicomwrite(Imodified,'ankle_newseries.dcm',info);
Чтобы проверить эту операцию, просмотрите изображение и поле метаданных SeriesInstanceUID
в новом файле.
Для получения информации об изменениях синтаксиса, которые задают пространственные координаты не по умолчанию, смотрите страницу с описанием для imshow
.