在C ++中,我想从DICOM图像中读取单个像素值。
答案 0 :(得分:18)
实际上有quite a few个免费库。如果您更喜欢更高级别的COM信封并且愿意购买它,那么还有其他一些 - 我熟悉RZDCX和DicomObjects,并且谷歌搜索将为您提供其他信息。
在免费的DCMTK下访问像素值相当容易。如果您希望原始Hounsfield数据看起来here,并且如果您需要后LUT(例如,窗口)值,则可以使用DicomImage::getOutputData。
答案 1 :(得分:8)
有这个图书馆:http://dicom.offis.de/dcmtk
答案 2 :(得分:5)
如果您使用的是x86或x86_64,那么imebra库效果很好。在x86_64上,您需要将-m32参数与g ++一起使用,以便将其编译为32位。但是,您将无法在IA-64上编译它,因为不支持-m32参数。
该库有一个dicom2jpeg程序,作为一个例子很有用(但没有告诉你如何读取像素值)。
如果您想阅读单个像素,请从手册中阅读此页面:http://imebra.com/documentation/html/quick_tour.html
答案 3 :(得分:5)
您应该使用GDCM。
Grassroots DiCoM是DICOM医疗档案的C ++库。它自动包装到python / C#/ Java(使用swig)。它支持RAW,JPEG(有损/无损),J2K,JPEG-LS,RLE和放气。
它是可移植的,并且已知可在大多数系统(Win32,Linux,MacOSX)上运行。