A C++ library for parsing DICOM file.
DICOMReader是一个用于解析DICOM文件的轻量级C++库。
注:测试版仅提供Windows平台的动态链接库版本且只能用于C++语言编写的程序。
Windows版本包含DICOMReader.h、DICOMReader.lib和DICOMReader.dll三个文件。静态链接和动态链接的方法请参考其他DLL的使用方法。
DICOMReader库仅包含DICOMReader一个类,使用时实例化该类并利用该类提供的各个成员方法即可完成DICOM文件的解析。使用结束后需调用close方法关闭DICOMReader中的打开的文件,否则存在内存泄露风险。
- DICOMReader
功能构造方法语法* (1) DICOMReader(void) * (2) DICOMReader(std::string dictionaryFileURL)参数dictionaryFileURL(2) 数据字典文件的绝对路径备注使用(1)后,DICOMReader对象的数据字典为空,只能解析显示语法的DICOM文件。
使用(2)但无法打开数据字典文件或数据字典文件格式错误,该方法会抛出字符串型异常说明错误信息。
DICOMReader库提供了一个数据字典的示例文件
dictionary_demo,但其中只包含了少量的DICOM字段。
-
read
功能读取DICOM文件并解析语法bool read(std::string fileURL)参数filename 文件的绝对路径返回值DICOM校验成功返回true,否则返回false,表示该文件不是DICOM文件。备注当文件不存在、文件不完整或出现其他解析错误时,该方法会抛出字符串型异常,说明错误信息。
-
getEndian
功能获得解析文件的字节序(端序)语法bool getEndian(void)参数null返回值小端序返回true,大端序返回false。
-
getValue
功能获得DICOM元素的值语法- (1) bool getValue(std::string groupNumber, std::string elementNumber, std::string& value)
- (2) bool getValue(std::string groupNumber, std::string elementNumber, unsigned short& value)
- (3) bool getValue(std::string groupNumber, std::string elementNumber, float& value)
- (4) bool getValue(std::string groupNumber, std::string elementNumber, double& value)
- (5) bool getValue(std::string groupNumber, std::string elementNumber, unsigned char*& bytes, unsigned long int& bytesLength)
参数- groupNumber(1-5) 组标签
- elementNumber(1-5) 元素标签
- value(1) 解析出的字符串型值
- value(2) 解析出的无符号短整型值
- value(3) 解析出的单精度浮点型值
- value(4) 解析出的双精度浮点型值
- bytes(5) 解析出的字节数组
- bytesLength(5) 解析出的字节数组的长度
返回值数据字典中找到对应元素返回true,否则返回false备注对应元素的值无法以给定类型解析时将抛出字符串型异常。
-
close
功能关闭DICOMReader对象语法void DICOMReader::close(void)参数null返回值null备注释放DICOMReader当前打开文件的字节数组,同时释放DICOMReader对象的数据字典以及其他内部空间。
DICOMReader使用MIT许可证。DICOMReader使用了JsonCpp用于读写JSON类型的数据字典。关于DICOMReader和JsonCpp许可的详细内容见License文件。