一种自适应实时三维体绘制的加速方法和装置与流程

文档序号:14303895阅读:154来源:国知局
一种自适应实时三维体绘制的加速方法和装置与流程

本发明涉及一种图像的绘制方法,尤其涉及一种超声四维成像中的自适应实时三维体绘制的加速方法,并涉及一种超声四维成像中的自适应实时三维体绘制的加速装置。



背景技术:

医学超声成像中,b超仪所显示的二维图像具有较好的解剖特性,医生可以通过多幅二维图像,凭经验判断病灶的形状和大小。但是医生还是希望用三维成像来提供直观的立体图像信息,这在心肌损伤的定位、胸腹部肿瘤的检测、怀孕期的评估(特别是早孕畸形的检测)等方面有重大的价值。三维超声成像包括静态三维超声成像和动态三维超声成像,动态三维超声成像也称四维,除了空间的三维外还增加了时间维。

四维超声成像技术包括以对于3d显示足够快的速率进行全体积数据的采集和显示,从而以临床上有用的速率示出3d绘制图像。所谓绘制,是指使用可视化算法对体数据进行计算,从而得到可视信息,并最终显示到计算机屏幕上。三维可视化算法主要分为两种,一种是体绘制方法,一种是面绘制方法,面绘制方法需要对体数据进行分类,并由此构造中间几何元素,然后由传统的计算机图形学技术实现画面绘制,与面绘制方法不同,体绘制方法并不构造中间几何元素,而是直接由三维数据场产生屏幕上的二维图像,因此也称为直接体绘制算法,该方法能产生三维数据场的整体图像,包括每一个细节,图像质量高,同时计算量也很大。

光线投射法是一种经典的体绘制算法,其基本原理是根据视觉成像原理,构造出理想化的物理视觉模型,即将每个体素都看成能够透射,发射和反射光线的粒子,然后根据光照模型或明暗模型依据体素的介质特性得到它们的颜色和不透明度并沿着视线观察方向积分,最后在像平面上形成具有半透明效果的图像。

现有技术中也公开了一种三维超声图像的快速体绘制算法,该算法通过将预设视平面划分为纵横排列的栅格,对每个栅格的四个顶点利用光线投射法计算其像素值,通过计算四个顶点像素值的偏差判断栅格所属类型;然而,在对栅格划分时并没有有效的利用前一帧的输出数据,只简单地将栅格划分为平坦与不平坦栅格两种类型,这样当平坦栅格判断一旦有误,对图像的质量会产生比较大的影响。



技术实现要素:

本发明所要解决的技术问题是需要提供一种能够提高体绘制的效率,还能够保证图像的绘制质量的自适应实时三维体绘制的加速方法,并提供自适应实时三维体绘制的加速装置。

对此,本发明提供一种自适应实时三维体绘制的加速方法,包括以下步骤:

步骤s1,获取体数据;

步骤s2,根据获取的体数据计算预设视平面的像素值,输出二维图像作为参考帧;

步骤s3,根据参考帧和当前一帧体数据计算预设视平面的像素值,并输出二维图像。

更进一步地,所述步骤s2包括:根据获取的第一帧体数据计算预设视平面的像素值,输出二维图像作为第一参考帧;

所述步骤s3包括:根据第一参考帧与当前帧体数据计算预设视平面的像素值,输出二维图像作为第二参考帧;根据第二参考帧与当前帧体数据计算预设视平面的像素值,输出二维图像作为第三参考帧,依次迭代。

更进一步地,所述步骤s3中,根据参考帧和当前一帧体数据计算预设视平面的像素值包括以下子步骤:

步骤s301,将预设视平面划分为栅格,确定栅格的类型;

步骤s302,根据栅格的类型进行像素填充。

更进一步地,所述步骤s301中,将预设视平面通过两次划分为栅格,确定栅格的类型包括无偏移平坦栅格、偏移平坦栅格和非平坦栅格;所述步骤s302中,分别对所述无偏移平坦栅格、偏移平坦栅格和非平坦栅格进行像素填充。

更进一步地,所述步骤s301中,将预设视平面通过两次划分为栅格包括一次划分,所述一次划分为根据预设宽高比将预设视平面划分为纵横排列的一级栅格,并判断一级栅格与参考帧相应位置的梯度值的绝对值之和是否大于第一预设门限,若否,则划分后的一级栅格为平坦栅格;若是,则划分后的一级栅格为不平坦栅格。

更进一步地,所述步骤s301中,将预设视平面通过两次划分为栅格还包括二次划分,所述二次划分为根据预设宽高比将所述不平坦栅格划分为纵横排列的二级栅格,并根据所述平坦栅格和二次划分后的二级栅格的顶点与参考帧对应位置点之间的像素偏差值将所有栅格划分为无偏移平坦栅格、偏移平坦栅格和非平坦栅格。

更进一步地,根据所述平坦栅格和二次划分后的二级栅格的顶点与参考帧对应位置点之间的像素偏差值将所有栅格划分为无偏移平坦栅格、偏移平坦栅格和非平坦栅格的具体过程为:当所述栅格顶点之间的像素偏差值小于第二预设门限且所述栅格的顶点分别与参考帧的对应位置点之间的像素偏差值小于第三预设门限时,判定该栅格的类型为无偏移平坦栅格;当所述栅格顶点之间的像素偏差值小于第二预设门限且所述栅格的顶点分别与参考帧的对应位置点之间的像素偏差值大于或等于第三预设门限时,判定该栅格的类型为偏移平坦栅格;否则判定该栅格的类型为非平坦栅格。

更进一步地,所述步骤s302中,根据栅格的类型进行像素填充包括以下步骤:对所述无偏移平坦栅格采用所述参考帧相应位置的像素值进行像素填充;对所述偏移平坦栅格采用插值法进行像素填充;对所述非平坦栅格采用光线投射法进行像素填充。

更进一步地,所述步骤s1中,根据探头采集到的数据计算得到对应的体数据,以获得第一帧体数据,所述第一帧体数据为当前视点下的第一帧三维体数据。

本发明还提供一种自适应实时三维体绘制的加速装置,包括:

数据采集模块,用于获取体数据;

计算参考帧模块,根据获取的体数据计算预设视平面的像素值,输出二维图像作为参考帧;

实时获取参考帧模块,根据参考帧和当前一帧体数据计算预设视平面的像素值,并输出二维图像。

与现有技术相比,本发明的有益效果在于:通过对预设视平面所有视点通过投射计算得到输出的第一帧体数据的二维图像,并将其作为参考帧,在下一帧体数据的计算时,将预设视平面划分为纵横排列的栅格,通过计算所述栅格四个顶点的第一像素偏差以及所述栅格四个顶点分别与所述参考帧的四个对应位置点之间的第二像素偏差,判断栅格的类型,并针对不同的栅格的类型,使用不同的方法进行栅格内像素点的计算;此后用新得到的当前输出的二维图像作为参考帧进行后续输出二维图像的计算,依此循环直到视点的预设坐标发生变化,则返回重新确定当前视点的第一帧体数据。本发明通过对预设视平面进行划分栅格能够有效减少了投射光线的数目,提高的体绘制的效率,同时,还通过设置参考帧保证了图像的绘制质量。

附图说明

图1是本发明一种实施例的光线投射法的示意图;

图2是本发明一种实施例的工作流程结构示意图;

图3是本发明一种实施例的栅格划分流程示意图;

图4是本发明一种实施例的第一像素偏差和第二像素偏差的计算原理示意图。

具体实施方式

下面结合附图,对本发明的较优的实施例作进一步的详细说明。

实施例1:

如图2所示,本实施例提供一种自适应实时三维体绘制的加速方法,包括以下步骤:

步骤s1,获取体数据;

步骤s2,根据获取的体数据计算预设视平面的像素值,输出二维图像作为参考帧;

步骤s3,根据参考帧和当前一帧体数据计算预设视平面的像素值,并输出二维图像。

图1所示的是光线投射法的示意图。从视点出发,通过预设视平面的每一个像素,如图1中像素点p,发射一条光线,光线穿越整个体数据,并在这个过程中,对体数据进行采样获取颜色信息,同时依据光线吸收模型将颜色值进行累加,直至光线穿越整个体数据,最后得到的颜色值就是最终的像素值。

本实施例所述步骤s1中,根据探头采集到的数据计算得到对应的体数据,以获得第一帧体数据,所述第一帧体数据为当前视点下的第一帧三维体数据。

更为具体的,所述步骤s1中,通过探头采集数据,定义响应界面,根据响应界面检测到的触发信号和探头采集的数据,获取第一帧体数据。本例根据探头采集到的数据并计算得到对应的体数据,检测获得第一帧体数据;探头采集到的数据是很多组二维数据,将很多组二维数据经过坐标重建后形成一组三维数据,叫体数据;即在三维数据坐标重建之后,获得一帧体数据。其中,响应界面为可成像设备的触摸屏显示界面或者部分区域;触发信号为鼠标点击触发或者手动划屏或触碰触发信号;所述第一帧体数据为当前视点下参与计算的第一帧三维体数据。

本实施例所述步骤s2中,根据获取的第一帧体数据计算预设视平面的像素值,输出二维图像作为第一参考帧;具体为:根据获得的第一帧体数据采用光线投射法对预设视平面计算像素值,输出像素值计算后的预设视平面的二维图像。并将输出的二维图像存储以作为计算第二帧体数据的参考帧。

预设视平面为根据响应的视点发出的射线的单位向量构建的预设的图像平面,比如预设256*256的图像,则构建图像宽和高都是256的图像作为预设视平面。

根据获得的第一帧体数据,对所述整个预设视平面使用光线投射法计算像素值,并将输出的二维图像存储以作为参考帧,通过上述计算最终得到了预设视平面所有的像素值组成的二维图像即为输出图像,即,根据第一帧体数据对预设视平面进行像素值计算后,通过计算所得的预设视平面的所有像素值组成所述步骤s2输出的二维图像;而像素值的计算方法可以采用光线投射法。

如果当前帧判定为第一帧体数据,则对整个预设视平面的像素点,使用如图1所示的光线投射法计算其像素值;光线投射法是当前比较成熟的算法,也即光线投影,用于计算预设视平面的像素值;本例将输出的二维图像存储起来作为参考帧。由于在对第一帧体数据的二维图像处理时,对整个预设视平面都使用光线投射法进行像素值的计算,所以得到的参考帧比较准确,质量比较好。由于参考帧会参与后续帧的计算,所以参考帧图像的质量比较重要。

所述第一帧体数据的二维图像,根据视点的位置是否发生变化,判断获得的数据是否第一帧体数据;当图1中视点位置及预设视平面位置不变时,即视点的预设坐标不发生变化时,此时,参与计算的第一帧体数据判定为第一帧体数据,随后参与计算的为第二帧体数据和第三帧体数据等,当视点或预设视平面位置改变时,在新的视点或预设视平面位置下,参与计算的第一帧体数据判定为第一帧体数据,随后参与计算的为第二帧体数据和第三帧体数据等等。

本实施例所述步骤s3中,根据第一参考帧与当前帧体数据计算预设视平面的像素值,输出二维图像作为第二参考帧;根据第二参考帧与当前帧体数据计算预设视平面的像素值,输出二维图像作为第三参考帧,依次迭代。本实施例在待输出的第三帧体数据的二维图像时,采用当前帧一体数据结合第二参考帧计算待输出的二维图像,输出后将当前二维图像继续作为第三参考帧,然后再用当前一帧体数据结合第三参考帧计算下一帧待输出的二维图像,即计算第四帧体数据的二维图像,依次迭代,直到所述视点的三维坐标的位置发生变化则返回步骤s2。

也就是说,如图1所示,本例所述步骤s3中的参考帧是实时变化的,通过迭代计算直到视点的坐标发生变化;所述视点的坐标发生变化代表的是视点的位置发生变化,比如视点的三维坐标发生了变化,此时,返回执行步骤s2;否则,在步骤s3中不断地以新的参考帧继续计算下一帧待输出的二维图像,依此循环和迭代。

本实施例所述步骤s3中,根据参考帧和当前一帧体数据计算预设视平面的像素值包括以下子步骤:

步骤s301,将预设视平面划分为栅格,确定栅格的类型;

步骤s302,根据栅格的类型进行像素填充。

即在计算和输出下一帧体数据的二维图像时,将预设视平面划分为栅格,并根据栅格与参考帧之间的像素偏差对该栅格进行像素填充,以输出像素填充后的下一帧体数据的二维图像。

本实施例所述步骤s301中,将预设视平面通过两次划分为栅格,确定栅格的类型包括无偏移平坦栅格、偏移平坦栅格和非平坦栅格;所述步骤s302中,分别对所述无偏移平坦栅格、偏移平坦栅格和非平坦栅格进行像素填充。

本实施例所述步骤s301中,将预设视平面通过两次划分为栅格包括一次划分和二次划分,所述一次划分为根据预设宽高比将预设视平面划分为纵横排列的一级栅格,并判断一级栅格与参考帧相应位置的梯度值的绝对值之和是否大于第一预设门限,若否,则划分后的一级栅格为平坦栅格;若是,则划分后的一级栅格为不平坦栅格。所述二次划分为根据预设宽高比将所述不平坦栅格划分为纵横排列的二级栅格,并根据所述平坦栅格和二次划分后的二级栅格的顶点与参考帧对应位置点之间的像素偏差值将所有栅格划分为无偏移平坦栅格、偏移平坦栅格和非平坦栅格。所述预设宽高比可以是划分前栅格原有尺寸的1/2,也可以是其他优选的数值,这个预设宽高比可以根据实际需要进行设置和调整。

本实施例中,根据所述平坦栅格和二次划分后的二级栅格的顶点与参考帧对应位置点之间的像素偏差值将所有栅格划分为无偏移平坦栅格、偏移平坦栅格和非平坦栅格的具体过程为:当所述栅格顶点之间的像素偏差值小于第二预设门限且所述栅格的顶点分别与参考帧的对应位置点之间的像素偏差值小于第三预设门限时,判定该栅格的类型为无偏移平坦栅格;当所述栅格顶点之间的像素偏差值小于第二预设门限且所述栅格的顶点分别与参考帧的对应位置点之间的像素偏差值大于或等于第三预设门限时,判定该栅格的类型为偏移平坦栅格;否则判定该栅格的类型为非平坦栅格。

具体为:将预设视平面划分为纵横排列的栅格,通过计算所述栅格四个顶点之间的第一像素偏差值以及所述栅格四个顶点分别与所述参考帧的四个对应位置点之间的第二像素偏差值,进而判断栅格的类型,然后根据所述栅格的类型对该栅格的像素值进行填充。即本实施例通过计算所述栅格顶点之间的第一像素偏差值以及所述栅格的顶点分别与所述参考帧的对应位置点之间的第二像素偏差值,进而得到所述栅格与参考帧之间的像素偏差。

综上,所述步骤s3以当前输出的二维图像作为下一帧体数据的参考帧,计算和输出下一帧体数据的二维图像,即根据所述参考帧和当前一帧体数据计算预设视平面的像素值,并输出二维图像,具体包括以下子步骤:

步骤s301,将预设视平面划分为纵横排列的栅格,并确定栅格的类型;

步骤s302,根据所述栅格的类型对不同类型的栅格进行像素填充;

步骤s303,输出填充像素值后的二维图像。

本实施例所述步骤s301中,如果当前帧判定不为第一帧体数据,则在计算当前预设视平面的像素值时,不需要对整个预设视平面进行光线投射法的计算,通过对预设视平面进行划分,将其划分成纵横排列的栅格,通过对各个栅格的类型进行判断,确定具体对预设视平面上的哪些像素点进行光线投射法的计算,这样就能够有效减少了投射计算的次数,提高了计算的效率。所述栅格的划分方式可以优选如图3所示,在具体实现过程中,所述步骤s301优选包括以下子步骤:

步骤s3011,计算所述参考帧各个像素点的梯度值;

步骤s3012,将预设视平面划分为纵横排列的栅格,该划分为纵横排列的栅格为图3所示的一级栅格;

步骤s3013,根据所述参考帧对应的梯度值判断所述纵横排列的栅格是否平坦,若不平坦则对不平坦栅格进行二次划分,即对预设视平面划分为纵横排列的栅格进行二次划分;

步骤s3014,计算所述栅格四个顶点的第一像素偏差,计算所述栅格四个顶点分别与所述参考帧的四个对应位置点之间的第二像素偏差,并确定栅格的类型。

也就是说,所述一级栅格为将预设视平面划分为纵横排列的栅格,包括了平坦栅格和不平坦栅格;而二级栅格为所述不平坦栅格进行二次划分后所得到的栅格。所述步骤s3中,计算所述参考帧各个像素点的梯度值,并将预设视平面划分为纵横排列的栅格,然后根据所述参考帧各个像素点的梯度值判断所述栅格是否平坦,若不平坦则对不平坦栅格进行二次划分后,然后再计算所述栅格与参考帧之间的像素偏差。

本实施例所述步骤s3011中,通过计算参考帧各个像素点的梯度值可以找到参考帧的平坦区域和非平坦区域,为后续预设视平面栅格的划分提供理论依据。为简便起见,使用中心插值法计算参考帧中像素的梯度值。以坐标为(x,y)的像素点为例,假设(x,y)处像素点的像素值记为data(x,y),其梯度值gx(x,y)和gy(x,y)的计算方法分别为:gx(x,y)=(data(x+1,y)-data(x-1,y))/2和gy(x,y)=(data(x,y+1)-data(x-1,y-1))/2。

本实施例所述步骤s3012中,将预设视平面划分为纵横排列的栅格,即在对预设视平面进行划分时,首先对其进行粗略划分,划分为比较大的一级栅格。假设预设视平面的宽和高分别为w和h,其中,w和h均代表像素点的个数,则一级栅格的宽和高分别为w1和h1,w1和h1可以根据实际情况自己设置,但需要为2的整数倍,比如w1=h1=4,其中其中m和n为一级栅格的行数和列数,由于边缘区域几乎不含信息,所以当w和h不能被w1和h1整除时,边缘区域舍弃。

本实施例所述步骤s3013中,对每一个栅格计算其与参考帧相应位置的像素值的绝对值之和,若该绝对值之和大于第一预设门限,则对该栅格进行二次划分。所述第一预设门限可以采用系统默认值,也可以根据实际需求进行自定义设置。

本实施例所述步骤s3013根据参考帧对应的梯度值判断所述栅格是否平坦,对其中不平坦的栅格再次进行栅格划分。对预设视平面中的每个栅格进行判断,对预设视平面中各个栅格,分别计算其在参考帧中相应位置所有像素梯度的绝对值之和sum1,判断绝对值之和sum1是否大于第一预设门限threshold1,若不大于,说明该栅格比较平坦,则栅格不再划分;若大于,说明此栅格不平坦,含有较多的信息,所述不平坦是指内部像素差异较大,进而将此栅格二次划分为宽高分别为w1/2和h1/2的四个小栅格,即对该栅格进行二次划分为二级栅格。

本实施例中,所述步骤s3014中,当所述第一像素偏差小于第二预设门限且所述第二像素偏差小于第三预设门限时,判定该栅格的类型为无偏移平坦栅格;当所述第一像素偏差小于第二预设门限且所述第二像素偏差大于或等于第三预设门限时,判定该栅格的类型为偏移平坦栅格;否则判定该栅格的类型为非平坦栅格。所述第二预设门限和第三预设门限可以采用系统默认值,也可以根据实际需求进行自定义设置。

所述步骤s3014中,计算所述栅格四个顶点的第一像素偏差,计算所述栅格四个顶点分别与所述参考帧的四个对应位置点之间的第二像素偏差,具体为:对预设视平面各个栅格的顶点使用光线投射法计算其像素值,保证栅格的四个顶点处像素值的准确性,进而计算栅格各个顶点的第一像素偏差以及计算栅格各个顶点与参考帧对应位置点之间的第二像素偏差;如图4所示,使用现有的偏差计算方法计算预设视平面栅格p1的四个顶点a1、b1、c1和d1的第一像素偏差delta1,以及计算栅格p1的四个顶点a1、b1、c1和d1与参考帧相同位置四个点a、b、c和d的第二像素偏差delta2,本实施例以均方误差为例计算第一像素偏差delta1和第二像素偏差delta2,公式如下:delta1=sqrt((a-d)2+(b-c)2+(a-b)2+(a-c)2+(c-d)2+(b-d)2)和delta2=sqrt((a-a1)2+(b-b1)2+(c-c1)2+(d-d1)2)。

然后,根据所述栅格顶点的第一像素偏差以及所述栅格顶点与参考帧对应位置点的第二像素偏差,对栅格进行分类;具体的,当预设视平面的栅格四个顶点的第一像素偏差小于第二预设门限threshold2以及预设视平面栅格四个顶点与参考帧对应位置点的第二像素偏差小于第三预设门限threshold3时,此栅格判定为无偏移平坦栅格;当预设视平面栅格四个顶点的第一像素偏差小于第二预设门限threshold2,但预设视平面栅格四个顶点与参考帧对应位置点的第二像素偏差不小于第三预设门限threshold3时,此栅格判定为偏移平坦栅格;否则此栅格判定为非平坦栅格。

本实施例所述步骤s302中,对所述无偏移平坦栅格采用所述参考帧相应位置的像素值填充栅格;对于无偏移平坦栅格内的像素值的计算中,由于其内部平坦,且与参考帧相比几乎没有什么变化,所以使用参考帧对应位置的像素值对该无偏移平坦栅格进行填充,提高效率。对所述偏移平坦栅格采用插值法填充该偏移平坦栅格;对于偏移平坦栅格内的像素值的计算中,由于其内部是平坦的,但是与参考帧相比有变化,所以为了提高效率,使用现有的插值法进行计算,如临近点插值、双线性插值和非线性插值等。对所述非平坦栅格采用光线投射法填充该非平坦栅格;对于非平坦栅格内部像素点的计算,由于其内部含有较多的信息,为了保证图像的质量,使用光线投射法进行计算。

本实施例通过对预设视平面所有视点通过投射计算得到输出的第一帧体数据的二维图像,并将其作为参考帧,在下一帧体数据的计算时,将预设视平面划分为纵横排列的栅格,通过计算所述栅格四个顶点的第一像素偏差以及所述栅格四个顶点分别与所述参考帧的四个对应位置点之间的第二像素偏差,判断栅格的类型,并针对不同的栅格的类型,使用不同的方法进行栅格内像素点的计算;此后用新得到的当前输出的二维图像作为参考帧进行后续输出二维图像的计算,依此循环直到视点的预设坐标发生变化,则返回重新确定当前视点的第一帧体数据。本发明通过对预设视平面进行划分栅格能够有效减少了投射光线的数目,提高的体绘制的效率,同时,还通过设置参考帧保证了图像的绘制质量。

实施例2:

本实施例还提供一种自适应实时三维体绘制的加速装置,包括:

数据采集模块,用于获取体数据;

计算参考帧模块,根据获取的体数据计算预设视平面的像素值,输出二维图像作为参考帧;

实时获取参考帧模块,根据参考帧和当前一帧体数据计算预设视平面的像素值,并输出二维图像。

计算参考帧模块实时获取参考帧模块图1所示的是光线投射法的示意图。从视点出发,通过预设视平面的每一个像素,如图1中像素点p,发射一条光线,光线穿越整个体数据,并在这个过程中,对体数据进行采样获取颜色信息,同时依据光线吸收模型将颜色值进行累加,直至光线穿越整个体数据,最后得到的颜色值就是最终的像素值。

本实施例所述数据采集模块中,根据探头采集到的数据计算得到对应的体数据,以获得第一帧体数据,所述第一帧体数据为当前视点下的第一帧三维体数据。

更为具体的,所述数据采集模块中,通过探头采集数据,定义响应界面,根据响应界面检测到的触发信号和探头采集的数据,获取第一帧体数据。本例根据探头采集到的数据并计算得到对应的体数据,检测获得第一帧体数据;探头采集到的数据是很多组二维数据,将很多组二维数据经过坐标重建后形成一组三维数据,叫体数据;即在三维数据坐标重建之后,获得一帧体数据。其中,响应界面为可成像设备的触摸屏显示界面或者部分区域;触发信号为鼠标点击触发或者手动划屏或触碰触发信号;所述第一帧体数据为当前视点下参与计算的第一帧三维体数据。

本实施例所述计算参考帧模块中,根据获取的第一帧体数据计算预设视平面的像素值,输出二维图像作为第一参考帧;具体为:根据获得的第一帧体数据采用光线投射法对预设视平面计算像素值,输出像素值计算后的预设视平面的二维图像。并将输出的二维图像存储以作为计算第二帧体数据的参考帧。

预设视平面为根据响应的视点发出的射线的单位向量构建的预设的图像平面,比如预设256*256的图像,则构建图像宽和高都是256的图像作为预设视平面。

根据获得的第一帧体数据,对所述整个预设视平面使用光线投射法计算像素值,并将输出的二维图像存储以作为参考帧,通过上述计算最终得到了预设视平面所有的像素值组成的二维图像即为输出图像,即,根据第一帧体数据对预设视平面进行像素值计算后,通过计算所得的预设视平面的所有像素值组成所述计算参考帧模块输出的二维图像;而像素值的计算方法可以采用光线投射法。

如果当前帧判定为第一帧体数据,则对整个预设视平面的像素点,使用如图1所示的光线投射法计算其像素值;光线投射法是当前比较成熟的算法,也即光线投影,用于计算预设视平面的像素值;本例将输出的二维图像存储起来作为参考帧。由于在对第一帧体数据的二维图像处理时,对整个预设视平面都使用光线投射法进行像素值的计算,所以得到的参考帧比较准确,质量比较好。由于参考帧会参与后续帧的计算,所以参考帧图像的质量比较重要。

所述第一帧体数据的二维图像,根据视点的位置是否发生变化,判断获得的数据是否第一帧体数据;当图1中视点位置及预设视平面位置不变时,即视点的预设坐标不发生变化时,此时,参与计算的第一帧体数据判定为第一帧体数据,随后参与计算的为第二帧体数据和第三帧体数据等,当视点或预设视平面位置改变时,在新的视点或预设视平面位置下,参与计算的第一帧体数据判定为第一帧体数据,随后参与计算的为第二帧体数据和第三帧体数据等等。

本实施例所述实时获取参考帧模块中,根据第一参考帧与当前帧体数据计算预设视平面的像素值,输出二维图像作为第二参考帧;根据第二参考帧与当前帧体数据计算预设视平面的像素值,输出二维图像作为第三参考帧,依次迭代。本实施例在待输出的第三帧体数据的二维图像时,采用当前帧一体数据结合第二参考帧计算待输出的二维图像,输出后将当前二维图像继续作为第三参考帧,然后再用当前一帧体数据结合第三参考帧计算下一帧待输出的二维图像,即计算第四帧体数据的二维图像,以此迭代,直到所述视点的三维坐标的位置发生变化则返回计算参考帧模块。

也就是说,如图1所示,本例所述实时获取参考帧模块中的参考帧是实时变化的,通过迭代计算直到视点的坐标发生变化;所述视点的坐标发生变化代表的是视点的位置发生变化,比如视点的三维坐标发生了变化,此时,返回执行计算参考帧模块;否则,在实时获取参考帧模块中不断地以新的参考帧继续计算下一帧待输出的二维图像,依此循环和迭代。

与实施例1对应的是,本实施例所述实时获取参考帧模块中,根据参考帧和当前一帧体数据计算预设视平面的像素值的实现过程包括以下步骤:

将预设视平面划分为栅格,确定栅格的类型;

根据栅格的类型进行像素填充。

即在计算和输出下一帧体数据的二维图像时,将预设视平面划分为栅格,并根据栅格与参考帧之间的像素偏差对该栅格进行像素填充,以输出像素填充后的下一帧体数据的二维图像。

本实施例所述将预设视平面划分为栅格、确定栅格的类型中,将预设视平面通过两次划分为栅格,确定栅格的类型包括无偏移平坦栅格、偏移平坦栅格和非平坦栅格;所述根据栅格的类型进行像素填充中,分别对所述无偏移平坦栅格、偏移平坦栅格和非平坦栅格进行像素填充。

本实施例将预设视平面通过两次划分为栅格包括一次划分和二次划分,所述一次划分为根据预设宽高比将预设视平面划分为纵横排列的一级栅格,并判断一级栅格与参考帧相应位置的梯度值的绝对值之和是否大于第一预设门限,若否,则划分后的一级栅格为平坦栅格;若是,则划分后的一级栅格为不平坦栅格。所述二次划分为根据预设宽高比将所述不平坦栅格划分为纵横排列的二级栅格,并根据所述平坦栅格和二次划分后的二级栅格的顶点与参考帧对应位置点之间的像素偏差值将所有栅格划分为无偏移平坦栅格、偏移平坦栅格和非平坦栅格。所述预设宽高比可以是划分前栅格原有尺寸的1/2,也可以是其他优选的数值,这个预设宽高比可以根据实际需要进行设置和调整。

本实施例中,根据所述平坦栅格和二次划分后的二级栅格的顶点与参考帧对应位置点之间的像素偏差值将所有栅格划分为无偏移平坦栅格、偏移平坦栅格和非平坦栅格的具体过程为:当所述栅格顶点之间的像素偏差值小于第二预设门限且所述栅格的顶点分别与参考帧的对应位置点之间的像素偏差值小于第三预设门限时,判定该栅格的类型为无偏移平坦栅格;当所述栅格顶点之间的像素偏差值小于第二预设门限且所述栅格的顶点分别与参考帧的对应位置点之间的像素偏差值大于或等于第三预设门限时,判定该栅格的类型为偏移平坦栅格;否则判定该栅格的类型为非平坦栅格。

具体为:将预设视平面划分为纵横排列的栅格,通过计算所述栅格四个顶点之间的第一像素偏差以及所述栅格四个顶点分别与所述参考帧的四个对应位置点之间的第二像素偏差,进而判断栅格的类型,然后根据所述栅格的类型对该栅格的像素值进行填充。即本实施例通过计算所述栅格顶点之间的第一像素偏差以及所述栅格的顶点分别与所述参考帧的对应位置点之间的第二像素偏差,进而得到所述栅格与参考帧之间的像素偏差。

本实施例在待输出的第三帧体数据的二维数据时,采用第二帧体数据并根据上述计算出的参考帧计算下一帧待输出的二维图像,输出后将当前二维图像继续作为参考帧,即再用第三帧体数据计算下一帧待输出的二维图像,以此迭代,直到所述视点的三维坐标的位置发生变化则返回计算参考帧模块。

本实施例在确定栅格的类型的过程中,如果当前帧判定不为第一帧体数据,则在计算当前预设视平面的像素值时,不需要对整个预设视平面进行光线投射法的计算,通过对预设视平面进行划分,将其划分成纵横排列的栅格,通过对各个栅格的类型进行判断,确定具体对预设视平面上的哪些像素点进行光线投射法的计算,这样就能够有效减少了投射计算的次数,提高了计算的效率。所述栅格的划分方式可以优选如图3所示,在具体实现过程中,确定栅格的类型优选包括以下步骤:

计算所述参考帧各个像素点的梯度值;

将预设视平面划分为纵横排列的栅格,该划分为纵横排列的栅格为图3所示的一级栅格;

根据所述参考帧对应的梯度值判断所述纵横排列的栅格是否平坦,若不平坦则对不平坦栅格进行二次划分,即对预设视平面划分为纵横排列的栅格进行二次划分;

计算所述栅格四个顶点的第一像素偏差,计算所述栅格四个顶点分别与所述参考帧的四个对应位置点之间的第二像素偏差,并确定栅格的类型。

也就是说,本实施例所述一级栅格为将预设视平面划分为纵横排列的栅格,包括了平坦栅格和不平坦栅格;而二级栅格为所述不平坦栅格进行二次划分后所得到的栅格。所述实时获取参考帧模块中,计算所述参考帧各个像素点的梯度值,并将预设视平面划分为纵横排列的栅格,然后根据所述参考帧各个像素点的梯度值判断所述栅格是否平坦,若不平坦则对不平坦栅格进行二次划分后,然后再计算所述栅格与参考帧之间的像素偏差。

本实施例计算所述参考帧各个像素点的梯度值中,通过计算参考帧各个像素点的梯度值可以找到参考帧的平坦区域和非平坦区域,为后续预设视平面栅格的划分提供理论依据。为简便起见,使用中心插值法计算参考帧中像素的梯度值。以坐标为(x,y)的像素点为例,假设(x,y)处像素点的像素值记为data(x,y),其梯度值gx(x,y)和gy(x,y)的计算方法分别为:gx(x,y)=(data(x+1,y)-data(x-1,y))/2和gy(x,y)=(data(x,y+1)-data(x-1,y-1))/2。

本实施例将预设视平面划分为纵横排列的栅格中,将预设视平面划分为纵横排列的栅格,即在对预设视平面进行划分时,首先对其进行粗略划分,划分为比较大的一级栅格。假设预设视平面的宽和高分别为w和h,其中,w和h均代表像素点的个数,则一级栅格的宽和高分别为w1和h1,w1和h1可以根据实际情况自己设置,但需要为2的整数倍,比如w1=h1=4,其中其中m和n为一级栅格的行数和列数,由于边缘区域几乎不含信息,所以当w和h不能被w1和h1整除时,边缘区域舍弃。

本实施例对不平坦栅格进行二次划分中,对每一个栅格计算其与参考帧相应位置的像素值的绝对值之和,若该绝对值之和大于第一预设门限,则对该栅格进行二次划分。所述第一预设门限可以采用系统默认值,也可以根据实际需求进行自定义设置。

本实施例对不平坦栅格进行二次划分中,根据参考帧对应的梯度值判断所述栅格是否平坦,对其中不平坦的栅格再次进行栅格划分。对预设视平面中的每个栅格进行判断,对预设视平面中各个栅格,分别计算其在参考帧中相应位置所有像素梯度的绝对值之和sum1,判断绝对值之和sum1是否大于第一预设门限threshold1,若不大于,说明该栅格比较平坦,则栅格不再划分;若大于,说明此栅格不平坦,含有较多的信息,所述不平坦是指内部像素差异较大,进而将此栅格二次划分为宽高分别为w1/2和h1/2的四个小栅格,即对该栅格进行二次划分为二级栅格。

也就是说,本实施例对所述不平坦栅格进行二次划分包括以下步骤:对不平坦栅格的宽和高分别进行预设比例的划分进而得到二级栅格,所述预设比例可以是不平坦栅格原有尺寸的1/2,也可以是其他优选的数值,这个预设比例可以根据实际需要进行设置和调整。

本实施例中,确定栅格的类型包括:当所述第一像素偏差小于第二预设门限且所述第二像素偏差小于第三预设门限时,判定该栅格的类型为无偏移平坦栅格;当所述第一像素偏差小于第二预设门限且所述第二像素偏差大于或等于第三预设门限时,判定该栅格的类型为偏移平坦栅格;否则判定该栅格的类型为非平坦栅格。所述第二预设门限和第三预设门限可以采用系统默认值,也可以根据实际需求进行自定义设置。

确定栅格的类型中,计算所述栅格四个顶点的第一像素偏差,计算所述栅格四个顶点分别与所述参考帧的四个对应位置点之间的第二像素偏差,具体为:对预设视平面各个栅格的顶点使用光线投射法计算其像素值,保证栅格的四个顶点处像素值的准确性,进而计算栅格各个顶点的第一像素偏差以及计算栅格各个顶点与参考帧对应位置点之间的第二像素偏差;如图4所示,使用现有的偏差计算方法计算预设视平面栅格p1的四个顶点a1、b1、c1和d1的第一像素偏差delta1,以及计算栅格p1的四个顶点a1、b1、c1和d1与参考帧相同位置四个点a、b、c和d的第二像素偏差delta2,本实施例以均方误差为例计算第一像素偏差delta1和第二像素偏差delta2,公式如下:delta1=sqrt((a-d)2+(b-c)2+(a-b)2+(a-c)2+(c-d)2+(b-d)2)和delta2=sqrt((a-a1)2+(b-b1)2+(c-c1)2+(d-d1)2)。

然后,根据所述栅格顶点的第一像素偏差以及所述栅格顶点与参考帧对应位置点的第二像素偏差,对栅格进行分类;具体的,当预设视平面的栅格四个顶点的第一像素偏差小于第二预设门限threshold2以及预设视平面栅格四个顶点与参考帧对应位置点的第二像素偏差小于第三预设门限threshold3时,此栅格判定为无偏移平坦栅格;当预设视平面栅格四个顶点的第一像素偏差小于第二预设门限threshold2,但预设视平面栅格四个顶点与参考帧对应位置点的第二像素偏差不小于第三预设门限threshold3时,此栅格判定为偏移平坦栅格;否则此栅格判定为非平坦栅格。

本实施例根据所述栅格的类型对不同类型的栅格进行像素填充中,对所述无偏移平坦栅格采用所述参考帧相应位置的像素值填充栅格;对于无偏移平坦栅格内的像素值的计算中,由于其内部平坦,且与参考帧相比几乎没有什么变化,所以使用参考帧对应位置的像素值对该无偏移平坦栅格进行填充,提高效率。对所述偏移平坦栅格采用插值法填充该偏移平坦栅格;对于偏移平坦栅格内的像素值的计算中,由于其内部是平坦的,但是与参考帧相比有变化,所以为了提高效率,使用现有的插值法进行计算,如临近点插值、双线性插值和非线性插值等。对所述非平坦栅格采用光线投射法填充该非平坦栅格;对于非平坦栅格内部像素点的计算,由于其内部含有较多的信息,为了保证图像的质量,使用光线投射法进行计算。

本实施例通过对预设视平面所有视点通过投射计算得到输出的第一帧体数据的二维图像,并将其作为参考帧,在下一帧体数据的计算时,将预设视平面划分为纵横排列的栅格,通过计算所述栅格四个顶点的第一像素偏差以及所述栅格四个顶点分别与所述参考帧的四个对应位置点之间的第二像素偏差,判断栅格的类型,并针对不同的栅格的类型,使用不同的方法进行栅格内像素点的计算;此后用新得到的当前输出的二维图像作为参考帧进行后续输出二维图像的计算,依此循环直到视点的预设坐标发生变化,则返回重新确定当前视点的第一帧体数据。本发明通过对预设视平面进行划分栅格能够有效减少了投射光线的数目,提高的体绘制的效率,同时,还通过设置参考帧保证了图像的绘制质量。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1