Dicom Toolkit (DCMTK) — Как получить центр окна и ширину

Я в настоящее время использую DCMTK в C ++. Я довольно новичок в этом инструментарии, но, насколько я понимаю, я должен быть в состоянии прочитать центр окна и ширину для целей нормализации.

У меня есть объект DicomImage DCM_image с моими данными Dicom.
Я прочитал значения в объект OpenCV Mat. Однако сейчас я бы хотел их нормализовать.
Ниже показано, как я читаю и переношу Данные в opencv Mat.

    DicomImage DCM_image("test.dcm");
uchar *pixelData = (uchar *)(DCM_image.getOutputData(8));
cv::Mat image(int(DCM_image.getHeight()), int(DCM_image.getWidth()), CV_8U, pixelData);

Любая помощь приветствуется. Спасибо

1

Решение

Считать центр и ширину окна несложно, однако вам нужно использовать другой конструктор и передать DcmDataset изображению.

DcmFileFormat file;
file.loadFile("test.dcm");
DcmDataset* dataset = file.getDataset()
DicomImage image(dataset);
double windowCenter, windowWidth;
dataset->findAndGetFloat64(DcmTagKey(0x0010, 0x1050), windowCenter);
dataset->findAndGetFloat64(DcmTagKey(0x0010, 0x1051), windowWidth);

Но на самом деле я не думаю, что это хорошая идея применять окна к изображению при загрузке. Работа с окнами должна регулироваться пользователем. Атрибуты Window Center и Window Width позволяют использовать несколько значений, которые можно применять для настройки окна в соответствии с диапазоном оттенков серого («VOI», Значения интереса).

Если вы действительно хотите создать оконное изображение, вы можете использовать свой код для создания изображения из содержимого файла и использовать один из методов createXXXImage, предоставляемых DicomImage.

НТН

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]