ios - 如何在 iOS Objective - C 中创建 (DICOM) .dcm 文件?

标签 ios objective-c xcode dicom

DICOM - 医学数字成像和通信,是一种处理、存储、打印和传输医学成像信息的标准。它包括文件格式定义和网络通信协议(protocol)。

我想在我的 ios 项目中写入 .dcm 文件。 请给我建议任何链接。

最佳答案

更新:Imebra 4.2 包含全套 ObjectiveC 包装器,它们也适用于 Swift。

原回答: Imebra允许在 iOS 上读取和生成 DICOM 文件。

它也为 iOS 和 OS-X 编译,它是用 C++ 编写的,但如果文件的扩展名是 .mm 而不是 .m,它可以与 ObjectiveC 方法一起使用

从 4.0.8.1 版本开始,Imebra 也包含很少的 objectiveC helpers将 C++ 字符串转换为 NSString(反之亦然)并从 Imebra 图像中提取 UIImage(或 NSImage)

如何在 Imebra 中生成 DICOM 文件(detailed instructions):

创建一个空数据集:

// We specify the transfer syntax and the charset
std::string transferSyntax(imebra::NSStringToString(@"1.2.840.10008.1.2.1"));
std::string encoding(imebra::NSStringToString(@"ISO 2022 IR 6"));
imebra::DataSet dataSet(transferSyntax, encoding);

创建图像,将其放入数据集中:

// Create a 300 by 200 pixel image, 15 bits per color channel, RGB
std::string colorSpace(imebra::NSStringToString(@"RGB"));
imebra::Image image(300, 200, imebra::bitDepth_t::depthU16, colorSpace, 15);

{
    std::unique_ptr<WritingDataHandlerNumeric> dataHandler(image.getWritingDataHandler());

    // Set all the pixels to red
    for(std::uint32_t scanY(0); scanY != 200; ++scanY)
    {
        for(std::uint32_t scanX(0); scanX != 300; ++scanX)
        {
            dataHandler->setUnsignedLong((scanY * 300 + scanX) * 3, 65535);
            dataHandler->setUnsignedLong((scanY * 300 + scanX) * 3 + 1, 0);
            dataHandler->setUnsignedLong((scanY * 300 + scanX) * 3 + 2, 0);
        }
    }

    // dataHandler will go out of scope and will commit the data into the image
}

dataSet.setImage(0, image);

保存数据集

std::string fileName(NSStringToString(@"path/to/file.dcm"));
imebra::CodecFactory::save(dataSet, fileName, imebra::codecType_t::dicom);

(披露:我是 Imebra 的作者)

关于ios - 如何在 iOS Objective - C 中创建 (DICOM) .dcm 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41424858/

相关文章:

ios - 由于空数组导致应用程序崩溃

ios - 如何向 UILabel 添加三角形,使其看起来像工具提示?

php - 加密发送到 PHP Web 服务的数据

ios - iPhone 锁定时声音不会启动 (Swift)

ios - 如何查找两个谷歌地图路线是否在 IOS 项目中相交

ios - 在 iOS 中使用自动布局并排放置多个图标的最佳方式

iphone - 检测长按 UIWebview 并在我按下链接时弹出菜单

Xcode git 自动检测电子邮件错误

ios - 为什么我下载头像的函数被调用了数千次?

ios - 带有文本长度计数器的 UITextField