iphone - 如何从 iOS 上的 DICOM 文件中提取像素数据?

标签 iphone ios dicom

有谁知道如何从 DICOM 文件中提取像素数据并将其传递给 iOS 上的图像查看器?

抱歉,如果这是一个简单的问题,但它似乎是我打开的一大堆蠕虫的主要组成部分。

最佳答案

我在 iOS 上使用 GDCM。我还没有非常努力地插入它,但到目前为止它运作良好。我基本上遵循了这篇关于 ITK 的优秀文章中关于破解 XCode 项目以在 iOS 中运行的说明。 .

以下是我为 iOS 编译它的方法:

  1. 从 sourceforge 下载源代码,通过 ports 安装 cmake。您需要最新版本的 cmake(我使用的是 2.8.2)
  2. 如果源代码位于名为 gdcm-2.0.17/的文件夹中,则在该级别创建另一个目录(比如 gdcmbin),cd 到该目录,然后输入 ccmake -GXCode ../gdcm-2.0。 17/ 在终端窗口中。这将创建 XCode 项目。当我这样做时,我没有创建任何示例程序或创建共享库(这在 iOS 中不起作用)。只需运行默认值即可。
  3. 按照 ITK 文件中有关更改构建选项的说明进行操作(第 4 页上的第 7 步)。
  4. 然后使用 Clint Harris' blog 上的优秀说明将 GDCM 链接到您的项目中
  5. 当您将项目中的 header 搜索路径设置为 GDCM - 您必须输入两个路径:blah/gdcm-2.0.17/Source/** 和 blah /gdcmbin/**。第一条路径上的尾随“/Source”是必需的 - 否则您会得到不适合您的架构的 header 。
  6. 一个小故障(很烦人但还没有花时间弄清楚):当您从模拟器切换到设备时(反之亦然),您会遇到一堆链接错误。这是因为 gdcm 项目不会将输出放入不同目标的不同目录中。所以 - 在切换时在 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"];

(注意:这是在混合了 C++ 和 ObjectiveC 的 *.mm 文件中)

关于iphone - 如何从 iOS 上的 DICOM 文件中提取像素数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5278743/

相关文章:

ios - 在 Swift 中覆盖父类(super class)委托(delegate)

ios - Swift:检查存储在 NSMutableArray 值中的 JSON 值

ios - GDataServiceGoogleDocs

ios - 通过 Swift 在 XCode 上加载 DICOM 图像

iphone - 安装应用程序时向 iPhone 上的 Safari 添加书签?

设置自定义 UIViewController 类时,iPhone 模拟器显示黑屏

c++ - 如何通过 C++ 库读取多帧 DICOM 文件?

dicom - OFFIS DICOM - dcmdump v3.6.0 - (0002,0010) 传输语法 UID

iphone - 检测以编程方式创建的控件中的 iOS UI 事件

iphone - 在 iOS4.3 和 iOS 5 的 phonegap 中暂停和恢复听众不工作