CN105976427A - 一种用于安卓平台的三维医学图像数据体绘制方法 - Google Patents
一种用于安卓平台的三维医学图像数据体绘制方法 Download PDFInfo
- Publication number
- CN105976427A CN105976427A CN201610274093.6A CN201610274093A CN105976427A CN 105976427 A CN105976427 A CN 105976427A CN 201610274093 A CN201610274093 A CN 201610274093A CN 105976427 A CN105976427 A CN 105976427A
- Authority
- CN
- China
- Prior art keywords
- renderer
- volume drawing
- threshold value
- touch operation
- human body
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000009877 rendering Methods 0.000 title claims abstract description 14
- 210000004872 soft tissue Anatomy 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims abstract description 11
- 210000000988 bone and bone Anatomy 0.000 claims abstract description 7
- 230000003068 static effect Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000000694 effects Effects 0.000 claims description 10
- 238000000151 deposition Methods 0.000 claims description 3
- 230000007613 environmental effect Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 2
- 238000009940 knitting Methods 0.000 claims 1
- 210000001519 tissue Anatomy 0.000 claims 1
- 230000006870 function Effects 0.000 description 22
- 238000013461 design Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 229940069016 go-dry Drugs 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30004—Biomedical image processing
- G06T2207/30008—Bone
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Epidemiology (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种用于安卓平台的三维医学图像数据体绘制方法,包含如下步骤:VTK开源库的跨平台移植;动态链接库的生成;输入病人病历号信息;查询并下载远程图像数据;体绘制资源初始化;渲染器调用动态链接库;骨骼与软组织的阈值求取;体绘制与触摸操作响应。
Description
技术领域
本发明属于医学图像三维重建领域,特别是一种安卓平台上的三维医学图像数据体绘制方法。
背景技术
近年来,随着多元化医疗设备的普及以及人工智能兴起,医学图像在精确医疗诊断中起到越来越重要的作用,但二维图像只能呈现平面的信息,通过三维医学图像观察和分析到待诊断的器官的已成为提高医疗水平的一个迫切的需求,因此医学图像三维重建与显示成为了图像领域和人工智能的研究热点;此外,随着移动设备计算能力的提升,移动办公已成为很多场合的办公首选,同时适用于移动设备的GPU(GraphicsProcessing Unit,图形处理器)的出现使得平板设备具有了与个人电脑相媲美的图像处理能力,因此在安卓平台上进行三维医学图像的重建与智能体绘制成为了可能,也具有了实用价值。
对于移动设备上的三维图像体绘制,许多解决方案都是基于OpenGL ES(OpenGLfor Embedded Systems是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计)来实现的,其缺点是功能实现复杂,代码编写困难、安全性能差、几乎不可复用,另外三维医学图像有着自身的特点,它对颜色标注,部位分割,切面显示,放缩显示,旋转操作有着进一步地要求,而使用OpenGL ES来实现这些功能有着巨大的困难,因此安卓平台上还没有出现一个较好的解决方案来实现医学图像的三维体绘制,我们的方案使用跨平台编译的方式将VTK(Visualization Toolkit,视觉化工具函式库)医学图像三维重建和显示的基础库移植到安卓平台,界面采用JAVA语言实现,体绘制部分使用C++语言调用VTK库进行,巧妙地利用JNI的方式便利地实现了三维医学图像的体绘制,同时由于VTK基础库的完备性,使得三维图像的放缩、旋转、部分分割以及触摸操作等响应能简单快速地实现,并具有很好地可复用性,给在安卓平台上进行三维图像操作提供了一个新思路。当然我们的技术方案也有很多局限性,比如对三维医学图像的智能显示上,我们只作了颜色标注以及响应多点触摸,放缩以及旋转等操作,并未对图像切割,切面显示,去燥等进行实现,功能过于简单,可以进一步开发和实现根,同时由于体绘制过程中使用的VTK开源库是在Open GL 3.0的基础上运行的,要求安卓系统的版本在4.3以上。
发明内容
发明目的:本发明为了解决移动设备上无法便利地进行三维医学图像的显示和操作的问题,提出了一种用于安卓平台的三维医学图像数据体绘制方法,从而有效解决在移动设备上进行医学三维图像的智能显示的问题。
发明内容:本发明公开了一种用于安卓平台的三维医学图像数据体绘制方法,其特征在于,包含以下步骤:
步骤1,VTK库的跨平台移植:在Linux操作系统上下载并编译VTK库,并移植编译到安卓Android平台,生成VTK静态链接库;
步骤2,生成动态链接库:采用C++编写阈值提取和体绘制代码,并将所述C++代码编译成动态链接库;
步骤3,输入病人病历号数据,用户名和密码,安卓平台向存放三维医学图像数据的远程服务器请求下载人体三维图像数据,所述远程服务器中存放有病人的病例数据;
步骤4,查询并下载远程图像数据:安卓平台将步骤2中输入的病人病历号数据、用户名以及密码通过网络传输给远程服务器,远程服务器向安卓平台发送对应的人体三维图像数据;
步骤5,体绘制资源初始化并自动响应触摸操作:进行体绘制时对体绘制视图以及对应的渲染器进行初始化,为体绘制准备资源,调用相应的渲染器响应函数自动响应触摸操作;
步骤6,渲染器响应函数调用步骤2中生成的动态链接库:渲染器响应函数通过JNI(Java Native Interface,即Java本地调用接口)的方式调用动态链接库来进行进一步的阈值提取和体绘制,同时将需进行体绘制的人体三维图像路径传给动态链接库;
步骤7,求取人体三维图像中骨骼与软组织的阈值:读取步骤4中从远程服务器接收的病人的人体三维图像数据,对其骨骼与软组织的边界进行分析并求取骨骼与软组织的阈值;
步骤8,VTK库对步骤4中从远程服务器接收的人体三维图像数据进行体绘制并响应触摸操作:利用步骤7中求取的骨骼和软组织的阈值标定人体三维图像数据中的体素颜色,并监听绘图窗口的触摸事件进行体绘制并响应触摸操作。
步骤2采用C++开发语言调用VTK开源库实现对人体三维图像的阈值提取和体绘制,然后将代码编译成动态链接库链接,动态链接库通过调用步骤1中生成的静态库的方式调用VTK开源库,实施中采用配置文件来配置静态链接库的链接顺序,在进行动态链接前,通过拓扑排序的方式生成配置文件,其中的拓扑条件为C++代码中头文件的引入顺序以及VTK开源库文件的包含关系。
步骤4中采用TCP(Transmission Control Protocol传输控制协议)协议来进行数据的传输,采用创建新线程的方式实现人体三维图像数据的下载。下载数据为避免堵塞UI线程而采用开辟新线程的方式进行,服务器通过两次数据传输将病人信息文件和人体图像数据传回,通过验证用户名和密码的方式保护数据的安全性以及返回的文件长度的方式来保证文件的完整性。
步骤5中体绘制视图继承自安卓平台的GLSurfaceView类,GLSurfaceView类在OPENGL ES 3.0和安卓系统之间建立联系,使得OPENGL ES3.0可以在安卓系统的主活动中工作,渲染器继承自安卓平台的GLSurfaceView.Renderer类,GLSurfaceView.Renderer类负责GLSurfaceView的渲染和触摸操作响应,渲染器负责体绘制视图的按需渲染并响应触摸操作。
步骤6中渲染器的渲染操作以及响应触摸操作都是通过JNI(Java Native Interface,JAVA本地调用接口)方式调用步骤2中生成的动态链接库来实现的,同时人体三维图像数据路径也是通过JNI的环境变量传输到C++代码中,再进一步传送到OPENGLES3.0的C++库。
步骤4所述病人的人体三维图像数据的接收过程是在新创建的下载线程中完成的,步骤7求取人体三维图像中骨骼与软组织的阈值的过程是在主活动的UI线程中完成的,两个线程保持同步。线程之间的同步可以通过加锁或者设置同步变量的方式来实现。
步骤7中求取的骨骼阈值a与软组织阈值b是0到255之间的一个值,判定值超过软组织阈值b的体素为软组织部分,标注为红色;判定值在骨骼阈值a与软组织阈值b之间的体素为骨骼部分,标注为白色;判定值低于骨骼阈值a的体素为背景,标注为黑色,采用基于梯度算子的体数据分割方法求取阈值。阈值在使用VTK开源库进行体绘制的过程中,通过设置体素的颜色以及透明度的标注来区分软组织、骨骼以及背景。
步骤8包括如下步骤:
步骤8-1,创建VTK的渲染窗口、渲染器、窗口响应器以及渲染对象;
步骤8-2,设置渲染对象体素的透明度和显示颜色;
步骤8-3,设置光线透射法来进行体绘制;
步骤8-4,将渲染对象添加到渲染器,重置场景摄像机进行体绘制并响应触摸操作。
步骤8-4中响应触摸操作的包括如下步骤:
步骤8-4-1,体绘制视图感应到触摸操作,自动响应对应的触摸事件(如向上,向下,多点触控)方法,调用体绘制视图的响应函数;
步骤8-4-2,响应函数调用体绘制视图的渲染器的对应渲染函数;
步骤8-4-3,渲染函数通过JNI的方式调用动态链接库的C++函数;
步骤8-4-4,重复步骤8-1到8-4进行体绘制渲染,直到下一次触摸操作或者关闭体绘制界面时结束。
有益效果:本发明能够实现在安卓平台上的三维医学图像体绘制,利用跨平台移植VTK开源库的方式提高安卓平台上三维医学图像体绘制功能的拓展性和代码的复用性,同时能够便利地响应对三维医学图像进行平移、旋转、缩放、切面显示、颜色标注等智能操作,给移动设备上的医学图像操作提供了新的技术思路。此外,本发明中在移植VTK开源库的过程中,采用拓扑排序的方式来生成配置文件,也给跨平台移植提供了经验和思路。因此这种安卓平台上的三维医学图像体绘制方法方法具有较高的实用价值。本发明能够快速地检索和接收远程服务器的三维医学图像数据,实现骨骼与软组织的阈值求取,并进行颜色标注,便利地使用JNI方式调用VTK实现三维医学图像的智能显示和图像操作,此外,VTK库的跨平台移植与采用拓扑排序来确定链接顺序的方式,对第三方库的跨平台移植与使用有一定的参考价值。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明流程图。
图2为触摸操作响应流程图。
图3为显示效果图,从左至右分别为原图,放大、缩小、旋转后的图片。
具体实施方式
如图1所示,本发明公开了一种用于安卓平台的三维医学图像数据体绘制方法,其特征在于,包含以下步骤:
步骤1,VTK库的跨平台移植:在Linux操作系统上下载并编译VTK,并移植编译到Android平台;
步骤2,动态链接库的生成:将对三维图像进行阈值提取和体绘制的C++代码编译成动态链接库;
步骤3,输入病人病历号信息:输入病人病历号信息,安卓平台向存放三维医学图像数据的远程服务器请求下载人体三维图像数据;
步骤4,查询并下载远程图像数据:将病人病历号数据、用户名以及密码通过网络传输给远程服务器,远程服务器向安卓平台发送对应的人体三维图像数据;
步骤5,体绘制资源初始化或触摸操作:第一次进行体绘制时对体绘制视图View以及对应的Renderer进行初始化,为体绘制准备资源,触摸操作则调用响应的渲染器响应函数;
步骤6,渲染器调用步骤2中生成的动态链接库:渲染器通过JNI的方式调用动态链接库;
步骤7,骨骼与软组织的阈值求取:读取人体三维图像数据,对其骨骼与软组织的边界进行分析并求取骨骼与软组织的阈值;
步骤8,VTK库对步骤4中从远程服务器接收的人体三维图像数据进行体绘制并响应触摸操作:利用步骤7中求取的骨骼和软组织的阈值标定人体三维图像数据中的体素颜色,并监听绘图窗口的触摸事件进行体绘制并响应触摸操作。
步骤1中VTK开源库的跨平台移植过程是在Ubuntu14.04系统中利用Make工具完成的,具体包括如下步骤:
下载并安装NDK,Open Java,Android SDK,GCC,Make,OpenGL3.0,并设置相关路径和环境变量;
下载并解压VTK6.3,并创建VTKBulid,VTKInstall文件夹,其中VTKBuild为编译路径,VTKInstall为安装文件路径;
进入VTK6.3,使用ccmake命令,配置好ndk,android sdk,opengl路径和版本;
选择vtk-android支持,配置好相关路径;
使用make命令编译出对应的Android平台上的静态链接库文件。
步骤2中动态链接库的生成是在Ubutntu14.04系统中利用NDK-build跨平台工具完成的,具体步骤包括:
编写调用VTK开源库进行阈值分割和体绘制的C++代码;
采用拓扑排序算法生成Android.mk配置文件,其中拓扑条件为代码中VTK开源库文件的调用顺序以及库文件的相互包含关系,配置文件的内容为静态链接库的链接顺序,每个链接选项是使用include$(PREBUILT_STATIC_LIBRARY)、include$(CLEAR_VARS)、LOCAL_MODULE、LOCAL_SRC_FILES中来声明的,其中include$(PREBUILT_STATIC_LIBRARY)表示静态链接库,include$(CLEAR_VARS)表示清空编译空间的临时变量,LOCAL_MODULE表明生成的静态链接库名,LOCAL_SRC_FILES表示静态链接库所用的源文件,实施方案中生成了VTK开源库中所有的的静态文件,LOCAL_C_INCLUDES表示引入的头文件,实施方案中是引入步骤1中生成的VTK开源库头文件,LOCAL_LDLIBS表示另外链接的第三方动态库,LOCAL_STATIC_LIBRARIES表明引入的静态链接库,实施方案中引入了上诉生成的静态链接库,include$(BULID_SHARED_LIBRARY)表明生成动态链接库,LOCAL_MODULE=VolumeRender表明生成的动态链接库名,LOCAL_SRC_FILES表明生成动态链接库的源文件;
编写Application.mk文件,其中APP_STL表明用到的C++版本,APP_CPPFLAGS表明使用的C++特性,APP_ABI表明编译出来的动态链接库适用的版本,实施过程设置为armeabi-v7a;NDK_TOOLHAIN_VERSION表明NDK版本,实施过程中用的4.9版本;
运行ndk-build命令将源文件生成对应的动态链接库(.so文件);
编写对应的java程序载入动态链接库,并声明其中的函数;
通过javah命令生成对应的动态链接库头文件。
步骤3中输入的病人病历号在实施中采用字符串的形式保存,当对远程服务器提交下载申请时会检测用户名和密码是否为空,若为空,需要进行用户名和密码输入,下载结果会在SD卡上保存病人信息文件和病人医学图像数据,分别以病历号.info和病历号.vtk命名。
步骤4中采用的是TCP协议来进行数据的传输,是采用创建新线程的方式来实现的,具体包括如下步骤:
将用户名、密码以及病历号传输到远程服务器,下载病人信息文件(病历号.info文件);
远程服务器验证用户名、密码,若错误,返回用户名、密码错误;若正确,查询病历号对应文件是否存在,若存在,返回该文件长度,并将文件写入TCP输出流;如不存在,文件长度为0;
若文件长度大于0,从TCP输入流中读入文件,在SD卡上新建文件(病历号.info)并存储,申请下载病人的人体三维医学图像数据;
远程服务器查询病人的人体三维医学图像数据文件长度,若不存在返回0,若存在,返回该文件长度,并将文件写入TCP输出流;
若返回文件长度大于0,从TCP输入流读入人体三维医学图像数据,在SD卡上新建文件(病历号.vtk)并存储。
步骤5中体绘制视图View在实施过程中命名为VolumeRenderView,渲染器为Renderer,VolumeRenderView监听了向上按压,向下按压,多点触摸等操作,分别调用Renderer的onKeyEvent和onMotionEvent的响应方法。
步骤6中通过JNI方式调用动态链接库是在Renderer的响应函数onKeyEvent和onMotionEvent,绘制函数onDrawFrame以及onSurfaceChanged函数中进行的,上诉函数在VolumeRenderLib函数中声明,它们为C++本地函数,在动态链接库中实现,动态链接库采用System.loadLibrary()在JAVA虚拟机中导入。
步骤7中求取的骨骼a与软组织阈值b是一个0到255的一个值,值超过b的体素被认定为软组织部分,标注为红色,值在a到b的体素被认定为骨骼部分,标注为白色,值低于a的体素被认定为背景,标注为黑色,具体步骤包括:
从JNI的JNIENV变量接收要进行体绘制操作的图像数据路径;
创建vtkStructuredPointsRender,vtkRendererWindow,vtkRenderer,vtkRendererWindowInteractor等资源;
使用vtkStructuredPointsRender将三维医学图像读入内存;
使用基于梯度算子的体数据分割方法对上诉医学图像进行计算,求得骨骼阈值a和软组织阈值b,实施中a=88,b=93;
使用vtkPiecewiseFunction类对值为0,a-1,a,b-1,b,255的体素进行透明度设置;
使用vtkColorTransferFunction类对值为0,a-1,a,b-1,b,255的体素进行显示颜色设置。
步骤8在实施中的具体步骤:
设置好vtkStructuredPointsRender,vtkRendererWindow,vtkRenderer,vtkRendererWindowInteractor的响应链,创建vtkVolumeProperty对象;
将步骤7中的vtkPiecewiseFunction与vtkColorTransferFunction的对象添加到vtkVolumeProperty的属性中;
创建vtkOpenGLVolumeRayCastMapper对象,该对象使用光线透射法来进行体绘制;
创建vtkVolume对象,并设置该对象的单体素属性vtkVolumeProperty对象和体绘制属性vtkOpenGLVolumeRayCastMapper对象;
将vtkVolume对象添加到渲染器vtkRenderer,重置场景中的摄像机进行体绘制;
VTK使用Android系统的OpenGL资源进行最终绘制。
如附图2所示,响应触摸操作的实施步骤为:
体绘制视图(实施例中为VolumeRenderView)感应到触摸操作,自动响应对应的触摸事件(如向上,向下,多点触控)方法,调用体绘制视图VolumeRenderView的响应函数;
响应函数调用体绘制视图VolumeRenderView的渲染器Renderer的对应渲染函数;
Renderer渲染函数通过JNI的方式调用动态链接库的CPP函数。
实施例中体绘制效果如附图3所示(因为附图只能为灰度图,因此图3只能以这种效果展示),其中第一张图为显示效果原图,第二张图为放大效果图,第三张为缩小效果图,第四张为旋转后体绘制效果图。
本发明提供了一种用于安卓平台的三维医学图像数据体绘制方法,具体实现该技术方案的方法和途径有很多,以上所述是本发明的优选实施方式。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本发明中未明确的各组成部分均可用现有技术加以实现。
Claims (9)
1.一种用于安卓平台的三维医学图像数据体绘制方法,其特征在于,包含以下步骤:
步骤1,VTK库的跨平台移植:在Linux操作系统上下载并编译VTK库,并移植编译到安卓平台,生成VTK静态链接库;
步骤2,生成动态链接库:采用C++编写阈值提取和体绘制代码,并将所述C++代码编译成动态链接库;
步骤3,安卓平台向存放三维医学图像数据的远程服务器请求下载人体三维图像数据;
步骤4,远程服务器向安卓平台发送对应的人体三维图像数据;
步骤5,体绘制资源初始化并自动响应触摸操作:进行体绘制时对体绘制视图以及对应的渲染器进行初始化,为体绘制准备资源,调用相应的渲染器响应函数自动响应触摸操作;
步骤6,渲染器响应函数调用步骤2中生成的动态链接库:渲染器响应函数通过JNI的方式调用动态链接库来进行进一步的阈值提取和体绘制,同时将需进行体绘制的人体三维图像路径传给动态链接库;
步骤7,求取人体三维图像中骨骼与软组织的阈值:读取步骤4中从远程服务器接收的病人的人体三维图像数据,对其骨骼与软组织的边界进行分析并求取骨骼与软组织的阈值;
步骤8,VTK库对步骤4中从远程服务器接收的人体三维图像数据进行体绘制并响应触摸操作:利用步骤7中求取的骨骼和软组织的阈值标定人体三维图像数据中的体素颜色,并监听绘图窗口的触摸事件进行体绘制并响应触摸操作。
2.根据权利要求1所述的方法,其特征在于,步骤2中,所述动态链接库通过调用步骤1中生成的VTK静态链接库的方式调用VTK库,采用配置文件来配置静态链接库的链接顺序,在进行动态链接前,通过拓扑排序的方式生成配置文件,其中的拓扑条件为C++代码中头文件的引入顺序以及VTK开源库文件的包含关系。
3.根据权利要求2所述的方法,其特征在于,步骤4中采用TCP协议来进行数据的传输,采用创建新线程的方式实现人体三维图像数据的下载。
4.根据权利要求3所述的方法,其特征在于,步骤5中体绘制视图继承自安卓平台的GLSurfaceView类,GLSurfaceView类在OPENGL ES 3.0和安卓系统之间建立联系,使OPENGL ES3.0在安卓系统的主活动中工作,渲染器继承自安卓平台的GLSurfaceView.Renderer类,GLSurfaceView.Renderer类负责GLSurfaceView的渲染和触摸操作响应,渲染器负责体绘制视图的按需渲染并响应触摸操作。
5.根据权利要求4所述的方法,其特征在于,步骤6中渲染器的渲染操作以及响应触摸操作都是通过JNI的方式调用步骤2中生成的动态链接库来实现的,同时人体三维图像数据路径也是通过JNI的环境变量传输到C++代码中,再进一步传送到OPENGL ES3.0的C++库。
6.根据权利要求5所述的方法,其特征在于,步骤4所述病人的人体三维图像数据的接收过程是在新创建的下载线程中完成的,步骤7求取人体三维图像中骨骼与软组织的阈值的过程是在主活动的UI界面线程中完成的,两个线程保持同步。
7.根据权利要求6所述的方法,其特征在于,步骤7中求取的骨骼阈值a与软组织阈值b是0到255之间的一个值,判定值超过软组织阈值b的体素为软组织部分,标注为红色;判定值在骨骼阈值a与软组织阈值b之间的体素为骨骼部分,标注为白色;判定值低于骨骼阈值a的体素为背景,标注为黑色,采用基于梯度算子的体数据分割方法求取阈值。
8.根据权利要求7所述的方法,其特征在于,步骤8包括如下步骤:
步骤8-1,创建VTK的渲染窗口、渲染器、窗口响应器以及渲染对象;
步骤8-2,设置渲染对象体素的透明度和显示颜色;
步骤8-3,设置光线透射法来进行体绘制;
步骤8-4,将渲染对象添加到渲染器,重置场景摄像机进行体绘制并响应触摸操作。
9.根据权利要求8所述的方法,其特征在于,步骤8-4中响应触摸操作包括如下步骤:
步骤8-4-1,体绘制视图感应到触摸操作,自动响应对应的触摸事件方法,调用体绘制视图的响应函数;
步骤8-4-2,响应函数调用体绘制视图的渲染器的对应渲染函数;
步骤8-4-3,渲染函数通过JNI的方式调用动态链接库的C++函数;
步骤8-4-4,重复步骤8-1到8-4进行体绘制渲染,直到下一次触摸操作或者关闭体绘制界面时结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610274093.6A CN105976427B (zh) | 2016-04-27 | 2016-04-27 | 一种用于安卓平台的三维医学图像数据体绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610274093.6A CN105976427B (zh) | 2016-04-27 | 2016-04-27 | 一种用于安卓平台的三维医学图像数据体绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105976427A true CN105976427A (zh) | 2016-09-28 |
CN105976427B CN105976427B (zh) | 2018-11-30 |
Family
ID=56994125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610274093.6A Active CN105976427B (zh) | 2016-04-27 | 2016-04-27 | 一种用于安卓平台的三维医学图像数据体绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105976427B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038029A (zh) * | 2017-03-28 | 2017-08-11 | 武汉斗鱼网络科技有限公司 | 苹果开发语言、C++混合编译调用openCV的方法及系统 |
CN110570508A (zh) * | 2019-07-23 | 2019-12-13 | 博志生物科技(深圳)有限公司 | 骨质疏松状况三维可视化渲染方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577699A (zh) * | 2013-11-14 | 2014-02-12 | 哈尔滨工程大学 | 一种基于Android平台的DICIOM医学图像显示处理方法 |
EP2733947A2 (en) * | 2012-11-19 | 2014-05-21 | Samsung Medison Co., Ltd. | Medical image generating apparatus and medical image generating method |
KR20140093364A (ko) * | 2013-01-16 | 2014-07-28 | 삼성전자주식회사 | 의료 영상 생성 장치 및 방법 |
-
2016
- 2016-04-27 CN CN201610274093.6A patent/CN105976427B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2733947A2 (en) * | 2012-11-19 | 2014-05-21 | Samsung Medison Co., Ltd. | Medical image generating apparatus and medical image generating method |
KR20140093364A (ko) * | 2013-01-16 | 2014-07-28 | 삼성전자주식회사 | 의료 영상 생성 장치 및 방법 |
CN103577699A (zh) * | 2013-11-14 | 2014-02-12 | 哈尔滨工程大学 | 一种基于Android平台的DICIOM医学图像显示处理方法 |
Non-Patent Citations (3)
Title |
---|
张彦铎等: ".NET Remoting 在分布式建模与仿真环境中的应用", 《计算机与数字工程》 * |
李健壮等: "基于Android和VTK的医学图像可视化系统设计与实现", 《计算机与现代化》 * |
陈超: "基于VTK的医学图像体绘制技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038029A (zh) * | 2017-03-28 | 2017-08-11 | 武汉斗鱼网络科技有限公司 | 苹果开发语言、C++混合编译调用openCV的方法及系统 |
CN110570508A (zh) * | 2019-07-23 | 2019-12-13 | 博志生物科技(深圳)有限公司 | 骨质疏松状况三维可视化渲染方法 |
CN110570508B (zh) * | 2019-07-23 | 2023-09-08 | 博志生物科技(深圳)有限公司 | 骨质疏松状况三维可视化渲染方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105976427B (zh) | 2018-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Scarpino | OpenCL in action: how to accelerate graphics and computations | |
CN106997610B (zh) | 一种图像渲染方法、装置及电子设备 | |
CN102741828A (zh) | 对计算机平台的异构处理器的双向通信支持 | |
CN112860260B (zh) | 一种在高校场景下基于web的跨平台应用构建工具及方法 | |
Xu et al. | Uiwear: Easily adapting user interfaces for wearable devices | |
EP3834080B1 (en) | Static reconcilliation of application view hierarchies | |
CN105005495B (zh) | 一种游戏引擎 | |
US9734629B2 (en) | Systems and methods for creating near real-time embossed meshes | |
EP2869195A1 (en) | Application coordination system, application coordination method, and application coordination program | |
Xie | knitr: A general-purpose Tool for dynamic report generation in R | |
CN105976427A (zh) | 一种用于安卓平台的三维医学图像数据体绘制方法 | |
CN111124233A (zh) | 医学影像的显示方法、交互方法及存储介质 | |
US8407678B2 (en) | Method of array interception using data-flow analysis | |
CN113934429A (zh) | 一种设计稿的转换方法、装置、计算机设备和存储介质 | |
Raghavan et al. | GPUPeP: Parallel enzymatic numerical P system simulator with a python-based interface | |
US20020133478A1 (en) | Data definition language | |
CN111045667B (zh) | 基于Lua脚本的图形化编程系统 | |
US20140032205A1 (en) | Java program for emulating the memory management of a c program and corresponding method | |
CN104813282B (zh) | 自动管道组成 | |
Lo et al. | OpenGL data visualization Cookbook | |
Lee et al. | Geosheet: A distributed visualization tool for geometric algorithms | |
Antebi et al. | Cross-compiling android applications to windows phone 7 | |
US20140372973A1 (en) | System and methods for generating data objects | |
CN116501452B (zh) | 模型处理方法、仿真平台及电子设备和存储介质 | |
Gustafson et al. | An open source reverse engineering workflow: Geometry to optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |