Если вы хотите узнать о формате DICOM, «Digital Imaging и коммуникации в медицине (DICOM): Практическое введение и Руководство по выживанию «Олег Пьяных вполне читаем и дает хорошее представление о ключевых концепциях DICOM. Springer-Verlag является издателем этой книги. Полный стандарт DICOM - это, конечно, конечная рекомендация, хотя это несколько более устрашающе. Он доступен от NEMA (http://medical.nema.org).
Формат файла на самом деле менее эзотерический, чем вы могли себе представить, и состоит из преамбулы, за которой следует последовательность элементов данных. Преамбула содержит текст ASCII «DICM» и несколько зарезервированных байтов, которые не используются. Следуя преамбуле, это последовательность элементов данных. Каждый элемент данных состоит из размера элемента, двухсимвольного кода ASCII, указывающего представление значения, тега DICOM и значения. Элементы данных в файле упорядочены по номерам тегов DICOM. Само изображение представляет собой еще один элемент данных с представлением размера, значения и т. Д.
Представления значений точно определяют, как интерпретировать значение. Это номер? Это строка символов? Если это символьная строка, она короткая или длинная и какие символы разрешены? Код представления значения сообщает об этом.
Тег DICOM представляет собой четырехбайтовый шестнадцатеричный код, состоящий из 2-байтового «группового» номера и 2-байтового «элемента». Номер группы - это идентификатор, который сообщает вам, к какой информационной сущности применяется тег (например, группа 0010 относится к пациенту, а группа 0020 относится к исследованию). Номер элемента идентифицирует интерпретацию значения (такие элементы, как идентификационный номер пациента, описание серии и т. Д.). Чтобы узнать, как вы должны интерпретировать значение, ваш код ищет тег DICOM в файле словаря.
Имеются некоторые другие детали, но в этом суть. Наверное, самая поучительная вещь, которую вы можете сделать, чтобы узнать о формате файла, - взять пример файла DICOM, посмотреть на него с помощью шестнадцатеричного редактора и пройти процесс разбора его мысленно. Я бы посоветовал не пытаться узнать о DICOM, взглянув на существующие реализации с открытым исходным кодом, по крайней мере на начальном этапе. Это скорее смущает, а не просветит. Получение большей картины важнее. Когда у вас будет большая картина, вы можете спуститься в тонкости.
Является ли это «Пожалуйста, моя домашняя работой для меня» вопроса? –
Нет, IMHO Я сделал домашнее задание: Есть некоторые библиотеки C/C++, которые поддерживают чтение (подмножество) файлов DICOM. У двух или трех из них даже есть привязки Python. Собственный анализатор Python будет служить двум целям для меня: 1. Не нужно создавать какие-либо библиотеки C/C++. 2. Узнайте о формате файла DICOM. –