Как извлечь данные пикселей из файлов DICOM на iOS? - PullRequest
2 голосов
/ 12 марта 2011

Кто-нибудь знает, как я могу извлечь данные о пикселях из файла DICOM и передать их в программу просмотра изображений на iOS?

Извините, если это простой вопрос, но он, кажется, является основным компонентом огромной банки червей, которую я открыл.

Ответы [ 2 ]

5 голосов
/ 19 марта 2011

Я использую GDCM на iOS. Я еще не очень старался, но пока все работает хорошо. В этой замечательной статье на ITK .

я в основном следовал указаниям по взлому проектов XCode для iOS.

Вот как я получил его для компиляции для iOS:

  1. Загруженный источник из sourceforge, установленный cmake через порты. Вам понадобится последняя версия cmake (я использую 2.8.2)
  2. Если источник находится в папке с именем gdcm-2.0.17 /, создайте другой каталог на этом уровне (скажем, gdcmbin), перейдите в этот каталог и введите ccmake -GXCode ../gdcm-2.0. 17 / в окне терминала. Это создает проект XCode. Когда я сделал это, я не создал ни одной из примеров программ или общих библиотек (которые не будут работать в iOS). Просто запустите настройки по умолчанию.
  3. Следуйте указаниям в документе ITK об изменении параметров сборки (шаг № 7 на стр. 4).
  4. Затем подключите GDCM к своему проекту, используя отличные инструкции на Блог Клинта Харриса
  5. Когда вы настраиваете путь поиска заголовка в своем проекте для GDCM - вам нужно ввести два пути: бла / gdcm-2.0.17 / Source / ** и бла / gdcmbin / **. Конечный '/ Source' на первом пути необходим, иначе вы получите заголовки, которые не подходят для вашей архитектуры.
  6. Один глюк (раздражает, но пока не потратил время на то, чтобы разобраться): вы получаете кучу ошибок связывания при переключении с симулятора на устройство (или наоборот). Это связано с тем, что проект gdcm не помещает выходные данные в разные каталоги для разных целей. Итак - запустите команду clean и rebuild в проекте gdcm, когда вы переключаетесь. Я, вероятно, скоро буду раздражен этим, чтобы изменить это: -).

Вот грубый фрагмент того, как вы бы назвали библиотеку и поместили результаты в словарь Objective-C:

NSMutableDictionary * imageDictionary = [[NSMutableDictionary alloc] initWithCapacity:40];
// The output of gdcm::Reader is a gdcm::File
gdcm::File &file = reader.GetFile();

// the dataset is the the set of element we are interested in:
gdcm::DataSet &ds = file.GetDataSet();
const Tag studyInstance(0x0020,0x000d); // Study Instance UID
const DataElement &dicomVal = ds.GetDataElement(studyInstance);
std::string stringVal( dicomVal.GetByteValue()->GetPointer(), dicomVal.GetByteValue()->GetLength() );
NSString *val = [NSString stringWithCString:stringVal.c_str() encoding:[NSString defaultCStringEncoding]];
[imageDictionary setObject:val forKey:@"studyInstanceUID"];

(Примечание: это файл * .mm, в котором смешаны C ++ и ObjectiveC)

0 голосов
/ 12 марта 2011

Если вы хотите найти программное обеспечение DICOM, посетите idoimaging.com , центр обмена информацией по программному обеспечению для медицинской визуализации. Вы можете выбрать платформу, формат ввода, формат вывода, язык и т. Д. IOS не указана в качестве формата, но большая часть перечисленного там программного обеспечения доступна с исходным кодом, полезна в виде библиотеки и доступна для MacOS X. Например, Я выбрал:

  • формат ввода: DICOM
  • платформа: Macintosh
  • язык: C

и нашел несколько пакетов. Учитывая сходство между MacOS и iOS и тот факт, что некоторые из них являются кроссплатформенными с включенным источником, не должно быть слишком сложно заставить одного из них работать на iOS.

...