The invention discloses a method to read the dicompyler image, C++ image class comprises the following steps: connecting the parameter initialization connector; initialize the Python interpreter, dicompyler loading function module streamlined; image object dicompyler function module, and obtain the image size and image pattern; provided by Python C API indirect trigger the data transfer function, the image data is converted to a string, and after a string object encapsulation; parameter analysis function using string object and Python, extraction of character string data on the object, and an array of string data into C/C++ memory in the memory array; the image data is copied to the C++ image in the class, according to the size of the size of the image acquisition settings of image class, set the color table, the ultimate end Read the DICOM data into RT. The invention can improve the development efficiency and the execution efficiency of the program, shorten the development cycle, and has great practicability, and is especially suitable for the equipment developed by the medical image processing software.
【技术实现步骤摘要】
一种将dicompyler的图像读取到C++图像类的方法
本专利技术属于计算机应用程序开发的领域,特别涉及一种将dicompyler的图像读取到C++图像类的方法。
技术介绍
目前,dicompyler是一个基于DICOM标准的可扩展的开源放射治疗研究开发工具包,同时它也是一个跨平台的DICOMRT阅读器。dicompyler是用Python开发的,其中使用了PIL(PythonImagingLibrary,Python图像库)来存储、显示DICOMRT的医学图像。PIL提供了广泛的文件格式支持,高效的内部数据表示和相当强大的图像处理能力,再加上Python是一门语言简易、开发简单、跨平台性良好以及公用库多的编程语言,更重要的是Python的开发效率高,综合上述两个优势,dicompyler深受广大医学图像研究者的热爱。但是,由于Python是一门解释型的语言,也就是说Python开发的功能模块没有经过编译的过程,各功能模块依赖于Python解释器而运行,所以Python功能模块的执行效率不高。为了提高程序的执行效率,可以选择将Python的功能模块嵌入到C++应用程序中,而这就延伸到了如何利用C++调用dicompyler功能模块,更进一步的是利用C++调用Python的PIL功能模块。因此,需要提供一种将dicompyler的图像读取到C++图像类的方法,既提高了程序的开发效率,也保证了程序的执行效率,同时也缩短了应用程序的开发周期。
技术实现思路
本专利技术的目的在于克服现有技术的缺点与不足,提供一种将dicompyler的图像读取到C++图像类的方法, ...
【技术保护点】
一种将dicompyler的图像读取到C++图像类的方法,其特征在于,包括如下的步骤:a、初始化连接器的连接参数;b、初始化Python解释器,并加载精简后的dicompyler功能模块;c、获取dicompyler功能模块的图像对象,并获取图像尺寸以及图像模式;d、利用Python提供的C‑API间接触发数据转换函数,将图像数据转换为字符串的形式,并得到经过封装的字符串对象;e、利用上一步得到的字符串对象以及Python提供的参数解析函数,提取字符串对象的字符串数据,并将字符串数据读入到C/C++的内存数组中;f、将内存数组的图像数据复制到C++的图像类里面,根据获取的图像尺寸设置图像类的尺寸大小,必要时根据图像模式设置颜色表,最终完成DICOM RT数据的读取。
【技术特征摘要】
1.一种将dicompyler的图像读取到C++图像类的方法,其特征在于,包括如下的步骤:a、初始化连接器的连接参数;b、初始化Python解释器,并加载精简后的dicompyler功能模块;c、获取dicompyler功能模块的图像对象,并获取图像尺寸以及图像模式;d、利用Python提供的C-API间接触发数据转换函数,将图像数据转换为字符串的形式,并得到经过封装的字符串对象;e、利用上一步得到的字符串对象以及Python提供的参数解析函数,提取字符串对象的字符串数据,并将字符串数据读入到C/C++的内存数组中;f、将内存数组的图像数据复制到C++的图像类里面,根据获取的图像尺寸设置图像类的尺寸大小,必要时根据图像模式设置颜色表,最终完成DICOMRT数据的读取。2.根据权利要求1所述的将dicompyler的图像读取到C++图像类的方法,其特征在于,所述的步骤a中,所述的连接参数就是清单依赖项manifestdependency的参数,包括连接器的类型、名称、版本处理器架构以及公匙的标记。3.根据权利要求1所述的将dicompyler的图像读取到C++图像类的方法,其特征在于,所述的步骤b中,精简后的dicompyler功能模块包括dicomparser、dvhdoses和dvhcalc三个模块,而加载dicompyler功能模块的步骤,具体包括:b1、执行初始化函数用以初始化Python解释器;b2、判断Python解释器是否成功初始化,如果初始化失败,退出程序;否则,继续步骤b3;b3、执行模块加载函数用以加载功能模块,并得到该模块对象。4.根据权利要求3所述的将dico...
【专利技术属性】
技术研发人员:陈棋江,蔡夫鸿,何赛灵,
申请(专利权)人:华南师范大学,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。