c++ - 如何使用 Imebra 库从 jpeg 转换/创建 dicom 图像?

标签 c++ ios objective-c iphone dicom

我想在 iOS 平台上使用 imebra 库创建或将 jpeg 图像转换为 dicom 图像。在库的 objective-c 示例中,给出了将 dicom 转换或读取为 jpeg 的步骤,但是,我正在阅读文档并尝试实现相反的过程(即 jpeg 到 dicom)。我没有 c++ 的背景,所以任何帮助将不胜感激。库和文档的链接:

1. https://imebra.com

2。 https://imebra.com/wp-content/uploads/documentation/imebra_build_2013-10-30_10-00-11/html/dicom2jpeg_2dicom2jpeg_8cpp-example.html

下面是一些基本代码,在此先感谢。

-(void)createDcmFromJpg
{

     NSString *imagePath = [[NSBundle mainBundle]pathForResource:@"test2" ofType:@"jpeg"];

    //Create read stream
    using namespace puntoexe;
    ptr<stream> readStream(new stream);
    readStream->openFile(NSStringToStringW(imagePath), std::ios::in);

   //create dataset
    ptr<streamReader> reader(new streamReader(readStream));
    ptr<imebra::dataSet> testDataSet = imebra::codecs::codecFactory::getCodecFactory()->load(reader);

    //set Tags
    testDataSet->setString(0x0010, 0, 0x0010, 0, "testStr");
    testDataSet->setString(0x0010, 0, 0x0010, 1, "testStr1");

   //Next step/steps ?
}

最佳答案

imebra::dataSet 表示 Dicom 标签的集合。

当您读取文件(jpeg 或 dicom)时,Imebra 会创建一个数据集,它是一组 Dicom 标签。

当读取 Dicom 文件时,数据集将准确反射(reflect)存储在 Dicom 文件中的标签,而当读取 jpeg 图像时,Imebra 将创建一个包含嵌入 jpeg 图像的正确 dicom 标签的数据集:所有需要的 Dicom 标签将已经在数据集中,您可以添加自己的(如患者姓名等)。

下一步是将数据集保存到 Dicom 流:

使用 Imebra V4(当前):

// Load jpeg
std::unique_ptr<imebra::Dataset> testDataset(imebra::CodecFactory::load("/path/to/jpegfile.jpg"));

// Save as Dicom
imebra::CodecFactory::save(testDataset, "/path/to/file.dcm", imebra::codecType_t::dicom);

使用 Imebra 2015(旧版):

// Open the Dicom file for writing
ptr<stream> writeStream(new stream);
writeStream->openFile(NSStringToStringW(dicomfilepath), std::ios::out);

// Declare the writer (will take care of writing into the stream)
ptr<streamWriter> writer (new streamWriter(writeStream));

// Use the dicom codec to write the dataSet into the file
ptr<imebra::codecs::codec> dicomCodec(new imebra::codecs::dicomCodec);
dicomCodec->write(writer, testDataSet);

关于c++ - 如何使用 Imebra 库从 jpeg 转换/创建 dicom 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37992734/

相关文章:

iphone - 使用自己的按钮(不是预定义的按钮)创建自己的 UI。它们是什么类型的物体?

c++ - new[] 如果元素默认构造函数可以抛出?

c++ - LNK2019 - 未解析的外部符号 - C++ - SDL2 库

ios - 在 iOS 应用程序中实现 OAuth 1.0 (Withings api)

iphone - 当应用程序不在后台时,URL 方案不起作用

ios - 了解复杂的 block 语法

ios - 类似 Twitter 的滚动标题

C++ 复合函数调用和求值

c++ - 从共享库内部使用我的 Qt 插件时出现符号查找错误

ios - foursquare 如何将其 map View 从表格标题动画化为全屏?