当前位置: 首页 > 专利查询>南京大学专利>正文

一种用于安卓平台的三维医学图像数据体绘制方法技术

技术编号:13768179 阅读:58 留言:0更新日期:2016-09-29 02:34
本发明专利技术公开了一种用于安卓平台的三维医学图像数据体绘制方法,包含如下步骤:VTK开源库的跨平台移植;动态链接库的生成;输入病人病历号信息;查询并下载远程图像数据;体绘制资源初始化;渲染器调用动态链接库;骨骼与软组织的阈值求取;体绘制与触摸操作响应。

【技术实现步骤摘要】

本专利技术属于医学图像三维重建领域,特别是一种安卓平台上的三维医学图像数据体绘制方法。
技术介绍
近年来,随着多元化医疗设备的普及以及人工智能兴起,医学图像在精确医疗诊断中起到越来越重要的作用,但二维图像只能呈现平面的信息,通过三维医学图像观察和分析到待诊断的器官的已成为提高医疗水平的一个迫切的需求,因此医学图像三维重建与显示成为了图像领域和人工智能的研究热点;此外,随着移动设备计算能力的提升,移动办公已成为很多场合的办公首选,同时适用于移动设备的GPU(Graphics Processing Unit,图形处理器)的出现使得平板设备具有了与个人电脑相媲美的图像处理能力,因此在安卓平台上进行三维医学图像的重建与智能体绘制成为了可能,也具有了实用价值。对于移动设备上的三维图像体绘制,许多解决方案都是基于OpenGL ES(OpenGL for 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++代码中,再进一步传送到OPENGL ES3.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,响应函数调用体绘制视本文档来自技高网
...

【技术保护点】
一种用于安卓平台的三维医学图像数据体绘制方法,其特征在于,包含以下步骤:步骤1,VTK库的跨平台移植:在Linux操作系统上下载并编译VTK库,并移植编译到安卓平台,生成VTK静态链接库;步骤2,生成动态链接库:采用C++编写阈值提取和体绘制代码,并将所述C++代码编译成动态链接库;步骤3,安卓平台向存放三维医学图像数据的远程服务器请求下载人体三维图像数据;步骤4,远程服务器向安卓平台发送对应的人体三维图像数据;步骤5,体绘制资源初始化并自动响应触摸操作:进行体绘制时对体绘制视图以及对应的渲染器进行初始化,为体绘制准备资源,调用相应的渲染器响应函数自动响应触摸操作;步骤6,渲染器响应函数调用步骤2中生成的动态链接库:渲染器响应函数通过JNI的方式调用动态链接库来进行进一步的阈值提取和体绘制,同时将需进行体绘制的人体三维图像路径传给动态链接库;步骤7,求取人体三维图像中骨骼与软组织的阈值:读取步骤4中从远程服务器接收的病人的人体三维图像数据,对其骨骼与软组织的边界进行分析并求取骨骼与软组织的阈值;步骤8,VTK库对步骤4中从远程服务器接收的人体三维图像数据进行体绘制并响应触摸操作:利用步骤7中求取的骨骼和软组织的阈值标定人体三维图像数据中的体素颜色,并监听绘图窗口的触摸事件进行体绘制并响应触摸操作。...

【技术特征摘要】
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中体绘制视图继承自安卓平
\t台的GLSurfaceView类,GLSurfaceView类在OPENGL ES 3.0和安卓系统之间建立联系,使OPENG...

【专利技术属性】
技术研发人员:杨育彬朱杰骏
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1