2009-03-19 4 views
10

В C++ я хочу читать отдельные значения пикселей из изображений DICOM.Какую библиотеку C++ можно использовать для чтения пикселей из изображений DICOM?

+0

Хороший вопрос. Я работаю в компании, которая делает цифровые сканеры для сканирования ткани, и недавно мы разработали интерфейс DICOM. –

ответ

18

Есть на самом деле quite a few бесплатные библиотеки. Если вы предпочитаете конверт COM более высокого уровня и готовы его приобрести, есть еще несколько - я знаком с RZDCX и DicomObjects, а поиск по Google будет доставлен вам другими.

Довольно легко получить доступ к значениям пикселей под бесплатным DCMTK. Если вы хотите, чтобы необработанные данные Hounsfield выглядели here, и если вам нужны значения после LUT (например, окна), вы можете использовать DicomImage::getOutputData.

5

Если вы используете x86 или x86_64, тогда библиотека imebra работает хорошо. Когда на x86_64 вам нужно использовать аргумент -m32 с g ++, чтобы он компилировался как 32-разрядный. Однако вы не сможете скомпилировать это на IA-64, поскольку аргумент -m32 не поддерживается.

http://imebra.com/

Библиотека имеет dicom2jpeg программу, которая будет полезна в качестве примера (но не показывает, как читать значения пикселей).

Если вы хотите, чтобы прочитать отдельные пиксели, то прочитайте эту страницу из руководства: http://imebra.com/documentation/html/quick_tour.html

+2

Последние версии Imebra компилируются также на 64-битных системах –

4

Вы должны использовать GDCM.

Grassroots DiCoM - это библиотека C++ для медицинских файлов DICOM. Он автоматически переносится на python/C#/Java (с помощью swig). Он поддерживает RAW, JPEG (с потерями/без потерь), J2K, JPEG-LS, RLE и сдувается.

Он переносится и, как известно, работает на большинстве систем (Win32, Linux, MacOSX).

http://gdcm.sourceforge.net/