2016-06-23 1 views
0

Я хочу создать преобразование изображения jpeg в изображение dicom, используя библиотеку imebra на платформе iOS. В объективных примерах библиотеки приведены шаги для преобразования или чтения dicom в jpeg, однако я просматриваю документацию и пытаюсь достичь наоборот (например, jpeg to dicom). У меня нет фона C++, поэтому любая помощь будет оценена. Ссылки на библиотеки и документацию:Как преобразовать/создать изображение dicom из jpeg с помощью библиотеки Imebra?

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

привет @ Рохит Кашьяп вы можете опубликовать свой ответ? –

+0

Привет, Дипак, ответ ниже Паоло решил мою проблему. –

+0

hey rohit еще одна вещь, \t после cmake build я получаю libimebra.a, а также я добавляю эту библиотеку в мой проект, но когда я импортирую или включаю imebra/imebra.h, не могу найти imebra/imebra.h –

ответ

1

imebra :: dataSet представляет собой набор тегов Dicom.

Когда вы читаете файл (jpeg или dicom), Imebra создает набор данных, который представляет собой набор тегов Dicom.

При чтении Dicom-файла данные будут точно отражать теги, хранящиеся в файле Dicom, а при чтении jpeg-изображения Imebra создаст набор данных, содержащий правильный тег dicom, который вставляет jpeg-изображение: все необходимые теги 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); 
+0

Большое спасибо Паоло. –

Смежные вопросы