2016-06-23 7 views
0

iOSプラットフォームでimebraライブラリを使用して、jicegイメージにjpegイメージを変換したいと思っています。ライブラリの客観的な例では、dicomをjpegに変換または読み込む手順が示されていますが、私はドキュメンテーションを辿り、逆も成し遂げようとしています(つまりjpegからdicomへ)。私はC + +の背景を持っていないので、どんな助けも高く評価されます。ライブラリとドキュメントへのリンク:Imebraライブラリを使用してjpegからdicomイメージを変換/作成する方法は?

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 ? 
} 
+0

ハイテク@ Rohit Kashyapあなたの答えを投稿できますか? –

+0

こんにちはDeepak、パオロの答えは私の問題を解決しました。 –

+0

hey rohitもう1つ、\t cmakeビルド後にlibimebra.aを取得し、このライブラリをプロジェクトに追加しますが、imebra/imebra.hをインポートまたはインクルードすると、imebra/imebra.hが見つかりません –

答えて

1

imebra :: dataSetは、Dicomタグのコレクションを表します。

ファイル(jpegまたはdicom)を読むと、ImebraはDicomタグのセットであるdataSetを作成します。

Dicomファイルを読み込むと、dataSetはDicomファイルに格納されているタグを正確に反映しますが、jpeg画像を読み込むと、Imebraはjiceg画像を埋め込む適切なdicomタグを含むdataSetを作成します。すでにdataSetに入っていて、独自の名前(患者名など)を追加することができます。

次のステップでは、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); 
+0

ありがとうパオロ。 –

関連する問題