用C ++处理DICOM图像

时间:2014-04-21 09:21:30

标签: image compression dicom

我有一个项目,我需要更改一个特定的C ++程序,它将bmp图像处理成一个可以读取,压缩和未压缩的DICOM图像的程序。

哪些库可用于在C ++中处理DICOM图像?

3 个答案:

答案 0 :(得分:1)

优秀的C ++ DICOM库是GDCM。我在MacOS和iOS上使用它 - 但我认为它几乎可以编译支持cmake的任何地方。

有读取和写入图像的示例。 GDCM还有一个非常活跃的用户社区。

答案 1 :(得分:0)

著名的Dicom库是DCMTK,您可以将其与图像处理库(例如OpenCV)一起使用,以帮助您避免不必要的额外工作。

答案 2 :(得分:0)

Imebra可以构建和解析DICOM文件及其嵌入的图像,并通过ACSE和DIMSE发送和接收DICOM命令。

它可以在Linux,Windows,MacOS,iOS,Android上运行,并具有Java,ObjectiveC和Python的包装器。

示例代码:

// Load DICOM dataset
std::unique_ptr<imebra::DataSet> loadedDataSet(imebra::CodecFactory::load("DicomFile.dcm"));

// Get the patient name (Unicode)
std::wstring patientName = loadedDataSet->getUnicodeString(imebra::TagId(imebra::tagId_t::PatientName_0010_0010), 0);

// Retrieve the first image (index = 0)
std::unique_ptr<imebra::Image> image(loadedDataSet->getImageApplyModalityTransform(0));

// Get the color space
std::string colorSpace = image->getColorSpace();

// Get the size in pixels
std::uint32_t width = image->getWidth();
std::uint32_t height = image->getHeight();

披露:我是Imebra的作者