DICOM и DICOM накладываемый вопрос - PullRequest
1 голос
/ 31 января 2011

У меня есть изображение DICOM, которое я читаю с использованием C # и преобразую его в 16-битное растровое изображение.Растровое изображение создается, но изображение имеет наложения DICOM.Я хочу записать наложение в растровое изображение при создании окончательного растрового изображения.Я не могу этого сделать.Любая помощь?

Один из способов - создать растровое изображение данных наложения и объединить 2 растровых изображения, но я также не могу получить данные наложения как растровое изображение.Я записал двоичные данные наложения, но как мне записать их в растровое изображение?

Спасибо

Ответы [ 3 ]

5 голосов
/ 01 февраля 2011

Существует два типа оверлеев:

1) Burned-In: является исходным.Он использует старший (ые) бит (ы) монохромных пиксельных данных (которые находятся за пределами диапазона пикселей, например, когда BitsAllocated равен 16, а BitsStored равен 12, имеется 4 неиспользуемых бита на пиксель (биты 12..15), которые можно использовать дляЯ не уверен, как это делается для подписанных изображений.
Обратите внимание, что нет тега, который указывает, имеет ли изображение такое наложение. (есть тег Burned In Annnotation (0028,0301), но это означает, чточто-то еще).

2) Модуль наложения: диапазон тегов (группа 0x600xx) зарезервирован для наложений.Каждая такая группа содержит несколько тегов и растровое изображение с 1 битом на пиксель, где 1 означает наличие наложения.
Обратите внимание, что это не стандартное растровое изображение GDI, линии не выровнены по границе DWORD!(и я не уверен, использует ли он тот же битовый порядок байтов.)

Изображение DICOM может иметь несколько (до 16?) таких оверлеев.Точную спецификацию смотрите в части 3 стандарта.

2 голосов
/ 24 марта 2015

Плоскости наложения всегда равны 1 биту на пиксель, где Overlay Bits Allocated равно 1, а Overlay Bits Position (60XX, 0102) всегда равно 0. Данные наложения одного бита кодируются отдельно от * Элемент 1008 * и элемент Overlay Data (60XX, 3000) используются для хранения данных. Значение представления для элемента данных Overlay - OW. Однако OB может использоваться для явного кодирования VR.

Согласно PS 3.5 стандартного раздела DICOM 8.1.2 , «Данные наложения кодируются как прямая конкатенация битов одной плоскости наложения, где первый бит на плоскости наложения кодируется в младший значащий бит, за которым сразу же следует следующий бит плоскости наложения в следующем старшем значащем бите. Когда данные наложения пересекают границу слова в случае OW или границу байта в случае OB, они должны продолжать кодироваться, начиная с младшего значащего бита до старшего значащего бита, в следующем слове или байте, соответственно ».

Порядок байтов 2-байтовых слов (VR of OW) определяется порядком байтов, используемым при кодировании. Таким образом, на границе строки не используется заполнение, и оно кодируется слева направо и сверху вниз, строка в то время, когда бит наложения 1 является первым битом плоскости наложения (верхний левый пиксель).

Формально наложенные данные было разрешено встраивать в неиспользованные биты Pixel Data (7FE0, 0010) и Overlay Bit Position (60XX, 0102) использовались для указания неиспользуемого бита в пикселе данные, в которых были сохранены данные наложения. В этом типе кодирования Overlay Bits Allocated (60XX, 0100) должно иметь то же значение, что и атрибуты Bits Allocated (0028, 0100) Модуль Pixel . Значение Overlay Bits Allocated больше 1 указывает на то, что данные наложения встроены в данные пикселей.

Четная группа (6000-601F, eeee) используется для кодирования плоскостей наложения, и набор данных может иметь максимум 16 наложений на изображение.

2 голосов
/ 31 января 2011

Наложение DICOM - это просто битовая маска. При рендеринге изображения я бы предложил просто пройти сквозь пиксели, а в случае, если установить пиксель в белый цвет.

В случае изображений в градациях серого вам придется проверить фотометрическую интерпретацию, чтобы убедиться, что это MONOCHROME1 или MONOCHROME2. Затем вам нужно проверить выделенные биты, чтобы увидеть, каково максимальное значение пикселя, и принудительно установить значения пикселей, для которых наложение установлено в это значение, в случае изображения MONOCHROME1. В случае изображения MONOCHROME2 вам необходимо установить для пикселей с включенным наложением минимальное значение в пикселях.

В случае цветного изображения вы можете изменить пиксель на определенный цвет или на белый, если необходимо, чтобы наложение отображалось.

...