书签 分享 收藏 举报 版权申诉 / 15

医学三维模型的网页显示的方法及其系统.pdf

  • 上传人:e2
  • 文档编号:4260880
  • 上传时间:2018-09-12
  • 格式:PDF
  • 页数:15
  • 大小:2.71MB
  • 摘要
    申请专利号:

    CN201210198849.5

    申请日:

    2012.06.15

    公开号:

    CN102880454A

    公开日:

    2013.01.16

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 9/44申请日:20120615|||公开

    IPC分类号:

    G06F9/44; G06T17/00; H04L29/08

    主分类号:

    G06F9/44

    申请人:

    深圳市旭东数字医学影像技术有限公司

    发明人:

    叶建平; 郭李云; 张吉帅; 杨光

    地址:

    518000 广东省深圳市福田区福华一路98号卓越大厦九楼907

    优先权:

    专利代理机构:

    北京律诚同业知识产权代理有限公司 11006

    代理人:

    刘健;黄韧敏

    PDF完整版下载: PDF下载
    内容摘要

    本发明适用于医学三维模型应用技术领域,提供了一种医学三维模型的网页显示的方法及其系统;所述方法包括:A、向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;B、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;C、所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。借此,本发明提高了医学三维模型数据的网络传输的速度及医学三维模型网页显示的效率。

    权利要求书

    权利要求书一种医学三维模型的网页显示的方法,其特征在于,所述方法包括:
    A、向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
    B、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
    C、所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。
    根据权利要求1所述的方法,其特征在于,在所述步骤C之后还包括:
    D、在所述客户端对所述医学三维模型进行实时交互操作。
    根据权利要求1所述的方法,其特征在于,所述步骤A包括:
    A1、定义文本形式头文件和二进制数据文件的描述格式;
    A2、根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件;
    A3、将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送。
    根据权利要求3所述的方法,其特征在于,所述步骤A1包括:
    A11、定义所述文本形式头文件的描述格式包括二进制数据文件名、定义所述医学三维模型的结构元素以及二进制数据文件语法;
    A12、所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维模型的结构元素;
    所述医学三维模型的结构元素包括:医学三维模型的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个;
    所述步骤A2包括:
    A21、根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述医学三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制数据文件语法;
    A22、读取所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数;
    A23、根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
    A24、将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
    A25、分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的一个或者多个数组元素与前一元素的差值,并代替原始值;
    A26、根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的元素移位取反,并依次写入到所述二进制数据文件中。
    根据权利要求3所述的方法,其特征在于,所述步骤B包括:
    B1、所述客户端接收所述IP数据包,并解压获得所述文本形式头文件和二进制数据文件;
    B2、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。
    根据所述要求5所述的方法,其特征在于,所述步骤B2包括:
    B21、使用脚本语言为每一个所述文件形式头文件生成一个模型对象;所述模型对象记录文本形式头文件包含的所有信息,所述模型对象的顶点在所有顶点中的起始位置和长度;
    B22、根据所述模型对象记录的二进制数据文件名读取所述二进制数据文件到所述客户端的内存中;
    B23、根据所述二进制数据文件语法以及所述起始位置和长度,到对应的内存位置读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值;
    B24、依次处理所有的所述模型对象,将所有原始值写入对应的浮点数组。
    根据权利要求5所述的方法,其特征在于,所述步骤C包括:
    C1、将所述医学三维模型的数据分别写入对应的浮点数组,并将所述浮点数组与所述客户端的显卡内存中对应的OpenGL顶点属性数组绑定;以及使用脚本语言将顶点属性数组设置为可用状态;
    C2、将所述OpenGL顶点属性数组名作为参数传递到顶点着色器,并实时显示所述医学三维模型。
    根据权利要求2所述的方法,其特征在于,所述实时交互操作包括通过鼠标对所述医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量。
    一种用于实现权利要求1~8任一项所述医学三维模型的网页显示的系统,其特征在于,所述系统还包括:
    数据传送模块,设置于服务器端,用于向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
    数据接收模块,设置于客户端,用于使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
    网页显示模块,设置于所述客户端,用于使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。
    根据权利要求9所述的系统,其特征在于,所述系统还包括:
    交互操作模块,设置于所述客户端,用于对所述医学三维模型进行实时交互操作。

    说明书

    说明书医学三维模型的网页显示的方法及其系统
    技术领域
    本发明涉及医学三维模型应用技术领域,尤其涉及一种医学三维模型的网页显示的方法及其系统。
    背景技术
    随着因特网的普及和发展,基于浏览器的电子商务、远程教育、三维电子地图等应用迅速发展成熟。但医学应用方面还普遍采用传统的二维网页浏览方式,提供二维图片、flash等信息。二维图片或者是信息难以给用户直观的获得相关的医学信息,并且其交互性也不强。
    另外一方面,在医学三维模型的数据传输方面,由于医学三维模型数据规模较大,若直接进行网络传输耗时较多,需要占用较大的带宽,而且容易被恶意软件截获数据。在接收到医学三维模型数据后,在客户端进行网页三维显示方面,通常的Web3D应用要求用户下载并安装一个插件,才能进行网页交互式三维显示,这样的操作给用户带来了不便。
    综上可知,现有的医学三维模型数据传输及网络显示技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
    发明内容
    针对上述的缺陷,本发明的目的在于提供一种医学三维模型的网页显示的方法及其系统,提高了医学三维模型数据的网络传输的速度及医学三维模型网页显示的效率。
    为了实现上述目的,本发明提供一种医学三维模型的网页显示的方法,所述方法包括:
    A、向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
    B、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
    C、所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。
    根据所述的方法,在所述步骤C之后还包括:
    D、在所述客户端对所述医学三维模型进行实时交互操作。
    根据所述的方法,所述步骤A包括:
    A1、定义文本形式头文件和二进制数据文件的描述格式;
    A2、根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件;
    A3、将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送。
    根据所述的方法,所述步骤A1包括:
    A11、定义所述文本形式头文件的描述格式包括二进制数据文件名、定义医学三维模型的结构元素以及二进制数据文件语法;
    A12、所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维模型的结构元素;
    所述医学三维模型的结构元素包括:医学三维模型的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个;
    所述步骤A2包括:
    A21、根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述医学三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制数据文件语法;
    A22、读取所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数;
    A23、根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
    A24、将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
    A25、分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的一个或者多个数组元素与前一元素的差值,并代替原始值;
    A26、根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的元素移位取反,并依次写入到所述二进制数据文件中。
    根据所述的方法,所述步骤B包括:
    B1、所述客户端接收所述IP数据包,并解压获得所述文本形式头文件和二进制数据文件;
    B2、所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。
    根据所述的方法,所述步骤B2包括:
    B21、使用脚本语言为每一个所述文件形式头文件生成一个模型对象;所述模型对象记录文本形式头文件包含的所有信息,所述模型对象的顶点在所有顶点中的起始位置和长度;
    B22、根据所述模型对象记录的二进制数据文件名读取所述二进制数据文件到所述客户端的内存中;
    B23、根据所述二进制数据文件语法以及所述起始位置和长度,到对应的内存位置读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值;
    B24、依次处理所有的所述模型对象,将所有原始值写入对应的浮点数组。
    根据所述的方法,所述步骤C包括:
    C1、将所述医学三维模型的数据分别写入对应的浮点数组,并将所述浮点数组与所述客户端的显卡内存中对应的OpenGL顶点属性数组绑定;以及使用脚本语言将顶点属性数组设置为可用状态;
    C2、将所述OpenGL顶点属性数组名作为参数传递到顶点着色器,并实时显示所医学三维模型述。
    根据所述的方法,所述实时交互操作包括通过鼠标对所述医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量。
    为了实现本发明的另一发明目的,本发明还提供了一种用于实现上述任一项所述医学三维模型的网页显示的系统,所述系统还包括:
    数据传送模块,设置于服务器端,用于向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
    数据接收模块,设置于客户端,用于使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
    网页显示模块,设置于所述客户端,用于使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。
    根据所述的系统,所述系统还包括:
    交互操作模块,设置于所述客户端,用于对所述医学三维模型进行实时交互操作。
    本发明通过向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。提高了医学三维模型的网络传输及网页显示的效率。在医学三维模型数据发送方面,将服务器上存储的大规模医学三维模型数据转换为自定义的适合网络传输处理的文本形式头文件和二进制数据文件,并根据数据特点进行了加密;在医学三维模型数据接收方面,客户端浏览器上可使用脚本语言快速解析出三维模型信息;进一步的,使用所述脚本语言调用着色器模块对所述医学三维模型数据进行三维显示,因此,实现了对医学三维模型的Web3D浏览。在Web网页医学三维模型显示方面,避免了下载安装插件的开销,基于解析得到的三维模型信息使用脚本语言直接调用着色器程序进行显示,优选的,在读取所述二进制数据文件时,为所述二进制数据文件分配一个唯一的颜色值,根据所述颜色值,通过鼠标对所述医学三维模型进行实时交互操作,使用户可以对医学三维模型进行Web3D交互式浏览。因此基于预设定的颜色信息实现了快速鼠标拾取,还实现了旋转、平移、放缩、透明显示、三维测量等交互方式。以为实现优质的远程医学教学,远程医学会议等提供良好的医学三维模型数据的传输、网络显示以及交互方式。
    附图说明
    图1是本发明第一实施例提供的医学三维模型的网页显示的系统结构图;
    图2是本发明第二实施例提供的医学三维模型的网页显示的系统结构图;
    图3是本发明第三实施例提供的医学三维模型的网页显示的方法流程图;
    图4是本发明一个实施例提供的医学三维模型Web页面显示图。
    具体实施方式
    为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
    参见图1,在本发明的第一实施例中,提供了一种医学三维模型的网页显示的系统100,所述系统还包括:
    数据传送模块10,设置于服务器101端,用于向客户端102传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;
    数据接收模块20,设置于客户端102,用于使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;
    网页网页显示模块30,设置于客户端102,用于使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。
    在该实施例中,由于医学三维模型是人体解剖结构的三维多边形表示,由顶点坐标、顶点法向量、多边形拓扑信息和纹理信息等构成。而医学领域的高精度要求,医学三维模型的数据规模一般较大,不宜直接用作网络传输数据。因此,定义文本形式头文件和二进制数据文件来表示医学三维模型,这两种文件更适合网络传输和数据快速解析。以提高医学三维模型数据在网络中的传输速度,在客户端102也能够快速的进行解析,获得医学三维模型。另一方面,由于所述二进制数据文件的语法是确定的,不需要做基于语法的分析,在客户端102整个解析流程只需要将二进制数据文件读入内存数组,对该内存数组做计算并转存计算结果即可,所以解析效率很高。因此,在接收到客户端102请求传输医学三维模型时,通过数据传送模块10将文本形式头文件和二进制数据文件表示的医学三维模型数据传输到客户端102,然后由数据接收模块20接收文本形式头文件和二进制数据文件后,使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。完成快速医学三维模型的传输。
    另外,在完成医学三维模型数据的传输后,由网页显示模块30使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。因此,在该实施例中,可以实现医学三维模型的Web3D浏览,用户只需在客户端102的本地浏览器上打开使用该方法的网址,网页上就可直接显示医学三维模型,方便用户浏览医学三维模型,以实现优质的远程医学教学,远程医学会议等。该医学三维模型的网页显示的系统100可以是软件单元,硬件单元或软硬件结合单元。作为客户端102可以包括多个,可以是移动终端或非移动终端;包括手机、PDA(Personal Digital Assistant,个人数字助理)、掌上电脑或者台式电脑等。而服务器101也可是诸如因特网网络服务器等设备。
    参见图2,在本发明的第二实施例中,所述医学三维模型的网页显示的系统100还包括:
    交互操作模块40,设置于客户端102,用于对所述医学三维模型进行实时交互操作。所述实时交互操作包括通过鼠标对所述医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量等操作。在客户端102的网页显示模块30显示医学三维模型后,通过交互操作模块40实现对显示医学三维模型进行上述多种交互操作方式,而不需要通过专业三维显示软件进行操作,提高了用户使用该医学三维模块的可操作性。
    参见图3,在本发明的第三实施例中,提供了一种医学三维模型的网页显示的方法,所述方法包括:
    步骤S301中,向客户端102传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;该步骤由数据传送模块10实现。
    步骤S302中,客户端102使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。该步骤由数据接收模块20实现。
    步骤S303中,客户端102使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。该步骤由网页显示模块30实现。
    在本发明的第四实施例中,所述步骤S301包括:
    A1、定义文本形式头文件和二进制数据文件的描述格式;该步骤可以由数据传送模块10中的定义子模块实现;该步骤A1包括:
    A11、定义所述文本形式头文件的描述格式包括二进制数据文件名、定义所述医学三维模型的结构元素以及二进制数据文件语法;
    A12、所述二进制数据文件依次存储所述文本形式头文件中定义的所述医学三维模型的结构元素;
    所述医学三维模型的结构元素包括:医学三维模型的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个;
    在A1步骤中,定义文本形式头文件和二进制数据文件所应包含的内容,例如,根据不同的医学三维模型可能包含的数据也不一样,一般来说可以包括顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组等。
    A2、根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件;该步骤可以由数据传送模块10中的转换子模块实现;步骤A2包括:
    A21、根据所述医学三维模型的结构特性,在所述文本形式头文件中写入描述所述医学三维模型的结构的二进制数据文件名、描述所述医学三维模型的结构元素以及二进制数据文件语法;
    A22、读取所述医学三维模型数据,获得所述三维模型的顶点总数和多边形总数;
    A23、根据所述医学三维模型的结构特征,构建新的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
    A24、将所述医学三维模型数据分别写入到所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组;
    A25、分别计算所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的一个或者多个数组元素与前一元素的差值,代替原始值;具体的,将每个数组中除第一个元素之外的每个元素与这个元素的前一元素作差值,并将差值代替原始值。
    A26、根据所述文本形式头文件将所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的元素移位取反,并依次写入到所述二进制数据文件中。在上述步骤中通过取反运算和差值运算实现对多组数组进行加密,保证了医学三维模型数据的网络传送安全。
    在步骤A2中,转换子模块根据定义后的文本形式头文件和二进制数据文件,以及此次数据传输的医学三维模型的结构特征,将医学三维模型数据转换为文本形式头文件和二进制数据文件,具体的可以包括顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组中的一个或者多个数组。然后,根据医学三维模型的具体结构,将其特征数据信息写入到对应的数组中。
    A3、将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送。该步骤可以由数据传送模块10中的封装子模块实现。最后封装子模块将文本形式头文件和二进制数据文件封装成IP数据包进行发送。
    在本发明的第五实施例中,步骤A1:定义文本形式头文件和二进制数据文件的描述格式的步骤包括:
    a)定义文本形式头文件。
    文本形式头文件描述了医学三维模型的结构,包括二进制数据文件名、纹理文件名、材质、索引数、二进制数据文件语法等。这里的二进制数据文件语法指明二进制数据文件的结构,例如[″POSITION","NORMAL","TEXCOORD"]指明二进制数据文件依次存储由医学三维模型的顶点坐标、顶点法向量和纹理坐标组成的元素。而[″POSITION","TEXCOORD"]指明二进制数据文件依次存储由医学三维模型顶点坐标和纹理坐标组成的元素,不存储顶点法向量。具体的,可以根据医学三维模型的结构进行设置。纹理文件一般是通用格式的图片,其本身能够高效地在网络上传输而不需转换为其他格式;纹理坐标则定义了医学三维模型的顶点到上述图片的映射关系,这些信息需要存储到二进制数据文件中。然后,根据文本形式头文件去读取二进制数据文件和纹理文件,则能够获得显示医学三维模型所需的全部信息。
    b)定义二进制数据文件。
    二进制数据文件依次存储文本形式头文件指明医学三维模型的结构的元素,不同结构的元素可能是顶点坐标、顶点法向量、多边形拓扑信息和纹理坐标中的一种或几种组合。考虑到医学三维模型数据压缩和保密的需要,并不直接存储这些数据的原始值,第一元素存储数据原始值移位取反后的值,第二个及之后的元素存储与前一元素对应数据差值移位取反后的结果。这样可以提高医学三维模型数据在传输时的安全性,不容易被其他非法用户恶意篡改。
    而步骤A2:根据所述描述格式,将医学三维模型数据转换为文本形式头文件和二进制数据文件包括:
    a)考虑医学三维模型有无纹理、法向量等信息,定义所述文本形式头文件,并在所述文本形式头文件写入二进制数据文件名、纹理文件名、材质、索引数、二进制数据文件语法等信息;
    b)读取医学三维模型,获得医学三维模型的顶点总数,多边形总数;
    c)新建顶点数组、法向量数组、多边形拓扑信息数组和纹理坐标数组;
    d)将医学三维模型数据依次写入对应的数组,其中顶点坐标需要映射到一个正整数范围,法向量需要归一化;
    e)计算所有数组元素与前一元素的差值,代替原始值;
    f)根据头文件将各数组元素移位取反,依次写入二进制数据文件。
    步骤A3:将所述文本形式头文件和二进制数据文件封装成IP数据包向所述客户端发送包括:将纹理文件、文本形式头文件和二进制数据文件封装成IP包向客户端发送;其中纹理文件为纹理坐标数组。
    在本发明的第六实施例中,所述步骤B包括:
    B1、客户端102接收所述IP数据包,并解压获得所述文本形式头文件和二进制数据文件;该步骤可以通过数据接收模块20中的解压子模块实现。具体的所述步骤B2包括:
    B21、使用脚本语言为每一个所述文本形式头文件生成一个模型对象;所述模型对象记录文本形式头文件包含的所有信息,所述模型对象的顶点在所有顶点中的起始位置和长度;在该步骤中,每个二进制数据文件中可以包含多个模型的数据文件,所以要想获得每个模型数据,必须知道在二进制数据文件中的起始位置和长度。比如,皮肤层分为头发,眼球等数据,所有的数据都保存在皮肤层的二进制数据文件中,要获得头发的模型数据,则必须知道头发模型在二进制数据文件中的起始位置等信息。
    B22、根据所述模型对象记录的二进制数据文件名读取所述二进制数据文件到所述客户端的内存中;
    B23、根据所述二进制数据文件语法以及所述起始位置和长度,到对应的内存位置读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值;在该步骤中计算差值时,需要与前一个元素作差,在步骤A25的差值运算中的所述顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组的第一个元素由于没有前一元素,所以假设前一原始值的初始值为0,当然也可以设置为其他初始值。而在对应的内存位置读取的数据包括了对应的顶点数组、顶点法向量数组、多边形拓扑信息数组和纹理坐标数组等。
    B24、依次处理所有的所述模型对象,将所有原始值写入对应的浮点数组。在该步骤中,所述对应的浮点数组包括顶点数据保存到顶点数组中,法向量保存到法向量数组。数组类型是浮点数组。
    B2、客户端102使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据。该步骤可以通过数据接收模块20中的解析子模块实现。
    在本发明的第七实施例中,客户端102接收如第六实施中发送的IP数据包,
    步骤B1包括:接收IP数据包并恢复为纹理文件、文本形式头文件和二进制数据文件。
    步骤B2包括:使用脚本语言快速解析出医学三维模型信息。
    由于二进制数据文件的语法是确定的,不需要做基于语法的分析,整个解析流程只需要将二进制数据文件读入内存数组,对该内存数组做计算并转存计算结果即可,所以解析效率很高。
    a)使用脚本语言为每一个文本形式头文件生成一个模型对象,该模型对象记录个文本形式头文件包含的所有信息,以及医学三维模型的顶点在所有顶点中的起始位置和长度;在该步骤中,每个二进制数据文件中可以包含多个模型的数据文件,所以要想获得每个模型数据,必须知道在二进制数据文件中的起始位置和长度。比如,皮肤层分为头发,眼球等数据,所有的数据都保存在皮肤层的二进制数据文件中,要获得头发的模型数据,就必须知道头发模型在二进制数据文件中的起始位置等信息。
    b)根据所述模型对象记录的二进制数据文件名读取二进制数据文件到内存中;
    c)第一个数据的前一原始值设定为0,基于二进制数据文件语法以及上述起始位置和长度,到对应的内存位置读取数据,然后取反移位作为差值,与前一原始值相加获得当前数据的原始值;
    d)依次处理所有模型对象,将所有原始值写入对应的浮点数组。
    在本发明的第八实施例中,所述使用所述脚本语言调用着色器模块对所述医学三维模型数据进行三维显示的步骤包括:
    C1、将所述医学三维模型的数据分别写入对应的浮点数组,并将所述浮点数组与所述客户端的显卡内存中对应的OpenGL(Open Graphics Library,定义了一个跨编程语言、跨平台的编程接口的规格)顶点属性数组绑定;以及使用脚本语言将顶点属性数组设置为可用状态;该步骤可以通过网页显示模块30的数组处理子模块实现;
    C2、将所述OpenGL顶点属性数组名作为参数传递到顶点着色器,并实时显示所述医学三维模型;该步骤可以通过网页显示模块30的显示子模块实现。
    本发明的一个实施例中,网页显示模块30是基于OpenGL实现三维显示,OpenGL是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库,封装了大量对显卡进行操作的图形函数。为了达到实时显示大数据量医学三维模型的目的,必须发挥显卡强大的硬件图形处理性能。该实施例中将OpenGL顶点属性数组0、1、2设置为可用状态,预先将所有的顶点坐标、顶点法向量和纹理坐标分别写入对应的浮点数组,并将浮点数组与显卡内存中对应的顶点属性数组绑定起来,在实时交互式三维显示过程中,调用顶点着色器和片断着色器代码以最大限度的发挥显卡性能。具体的操作包括下述步骤:
    a)所有数据都写入浮点数组后,使用脚本语言将顶点属性数组设置为可用状态,调用glBindBuffer()或glBindTexture()将浮点数组与显卡内存中对应的顶点属性数组绑定,并为顶点属性数组命名;
    b)将顶点属性数组名作为参数传递给顶点着色器并实现实时显示。
    在本发明的第九个实施例中,所述使用所述脚本语言调用着色器模块对所述医学三维模型数据进行三维显示的步骤之后还包括:
    D、在客户端102对所述医学三维模型进行实时交互操作。该步骤可通过医学三维模型的网页显示的系统100的交互操作模块40实现。
    在该实施例中,在客户端102的网页显示模块30显示医学三维模型后,通过交互操作模块40实现对显示医学三维模型进行鼠标拾取、旋转、平移、放缩、透明显示、三维测量等交互方式。而不需要通过专业三维显示软件进行操作。当然,还可以是通过客户端102的触摸屏幕实现对医学三维模型进行拾取、旋转、平移、放缩、透明显示、三维测量等交互操作。
    在该实施例中,具体的包括下述步骤:
    a)快速鼠标拾取。
    鼠标是二维输入设备,通常得到的信息只具有x、y方向的二维信息,一般情况下,需要实现在三维环境下的拾取,则要根据x、y计算第三维的z值。OpenGL虽然提供用于三维鼠标拾取的函数,但z值计算没有遵循射线穿个物体的先后顺序,计算结果并不稳定。在医学三维模型的交互中,鼠标拾取对象往往是某一个组织或器官,基于这个特点本发明提出下述鼠标拾取方法。
    1)为客户端102显示的网页的医学三维模型绘图区域添加鼠标响应事件;
    2)读取二进制数据文件时,同时为其分配一个唯一的颜色值,使得每一个组织或器官都有一个唯一的颜色值;
    3)创建帧缓存对象,将渲染缓冲区和纹理缓冲区绑定到对象;
    4)使用脚本语言调用片断着色器代码进行离屏渲染绘图
    5)获得鼠标x、y方向的屏幕坐标;
    6)离屏渲染,生成帧缓冲区;
    7)读取帧缓存里面的内容到一个数组里面,根据x、y方向的屏幕坐标读取该数组对应位置的颜色值,
    8)通过颜色值获得颜色编号就可以知道鼠标拾取的是哪一个组织或器官。
    b)旋转、平移、放缩。
    1)为客户端102显示的网页的医学三维模型绘图区域添加鼠标响应事件;
    2)根据鼠标事件改变OpenGL的投影矩阵、模型视图变换矩阵,并作为参数设置给顶点着色器代码;
    3)脚本语言调用顶点着色器和片断着色器代码进行三维显示,将鼠标操作效果体现出来。
    c)透明显示。
    1)在客户端102显示的网页采用一个滑动条标签来控制模型透明度,为之添加鼠标响应事件;
    2)调用glblendFunc()函数设置颜色混合方式;
    3)响应鼠标事件,修改滑动条的位置,并设置模型的透明度;
    4)将透明度作为参数设置给片断着色器代码;
    5)脚本语言调用顶点着色器和片断着色器代码进行三维显示,将透明效果体现出来。
    d)医学三维模型的三维测量。这里以三维距离测量来说明,三维角度测量的方法与之类似。
    1)为客户端102显示的网页增加一个标签来处理测量交互;
    2)响应鼠标事件,开始测量过程;
    3)鼠标点击测量的起点和终点,捕获起点、终点的屏幕x、y坐标;
    4)调用gluUnProject()函数获得起点、终点在世界坐标的坐标,根据两点间距离公式计算三维距离。
    在上述多个通过鼠标对所述医学三维模型进行实时交互操作实施例中,也可以通过用户在客户端102的触摸屏上对医学三维模型的点击选择操作的方式代替所述的鼠标的点击选择操作的方式。
    参见图4,在本发明的一个实施例中,提供了一个人体三维模型数据的web3D交互式浏览的方法,包括:
    1、为每一个医学三维模型数据定义一个文本形式头文件,其内容包括二进制数据文件的文件名,顶点总数和索引总数,二进制数据文件语法定义为["POSITION","NORMAL","TEXCOORD"]。对于人体模型来说,将其分为8层,每层都是一个独立的三维模型,为每层模型数据提供一个文本形式头文件。这8层是:皮肤层,肌肉层,骨骼层,结缔组织,内脏层,淋巴系统层,循环系统层,神经网络层。由于每个人体层包括很多部分,比如皮肤层分为头发,眼球等,所以对应的头文件中需要记录每部分的属性,包括名称,颜色值,纹理图片的名称,在其二进制数据文件的位置,以及包含的子区域的名称等信息。
    2、根据所述步骤A2的方式,将三维人体模型的顶点坐标、顶点法向量和纹理坐标压缩加密后转换为二进制数据文件,并将二进制数据文件和纹理文件封装成IP数据包向客户端102发送。
    3、客户端102接收IP数据包,将IP数据包恢复为纹理文件,文本形式头文件和二进制数据文件。
    4、解析二进制数据文件。使用脚本语言将每个二进制数据头文件解析成一个类,该类不仅记录文本形式头文件中的所有信息,并记录各医学三维模型的顶点在数据文件生成数组中的起始位置和长度。由于每个人体层由很多结构组成,每个结构又分为很多小结构,如皮肤层分为头发,眼球等,眼球分为虹膜和瞳孔。所以,需要在类中记录每个部分在数组中的位置。
    5、根据二进制数据文件名读取二进制数据文件到内存中,经过反加密,将数据转成真实的二进制数据。根据文本形式头文件中定义的顶点总数和索引总数,将二进制数据转成浮点数,分别保存到顶点数组,法向量数组和纹理数组中。
    6、基于OpenGL实现人体模型三维显示,根据需要进行鼠标拾取、旋转、平移、放缩、透明显示、三维测量等交互。
    综上所述,本发明通过向客户端传送采用文本形式头文件和二进制数据文件表示的医学三维模型数据;所述客户端使用脚本语言解析所述文本形式头文件和二进制数据文件,获得所述医学三维模型数据;所述客户端使用所述脚本语言调用着色器模块对所述医学三维模型数据进行医学三维模型的网页显示。提高了医学三维模型的网络传输及网页显示的效率。在医学三维模型数据发送方面,将服务器上存储的大规模医学三维模型数据转换为自定义的适合网络传输处理的文本形式头文件和二进制数据文件,并根据数据特点进行了加密;在医学三维模型数据接收方面,客户端浏览器上可使用脚本语言快速解析出三维模型信息;进一步的,使用所述脚本语言调用着色器模块对所述医学三维模型数据进行三维显示,因此,实现了对医学三维模型的Web3D浏览。在Web网页医学三维模型显示方面,避免了下载安装插件的开销,基于解析得到的三维模型信息使用脚本语言直接调用着色器程序进行显示,优选的,在读取所述二进制数据文件时,为所述二进制数据文件分配一个唯一的颜色值,根据所述颜色值,通过鼠标对所述医学三维模型进行实时交互操作,使用户可以对医学三维模型进行Web3D交互式浏览。因此基于预设定的颜色信息实现了快速鼠标拾取,还实现了旋转、平移、放缩、透明显示、三维测量等交互方式。以为实现优质的远程医学教学,远程医学会议等提供良好的医学三维模型数据的传输、网络显示以及交互方式。
    当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

    关 键  词:
    医学 三维 模型 网页 显示 方法 及其 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:医学三维模型的网页显示的方法及其系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4260880.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1