增强的IBFV二维矢量场可视化算法

       在前一篇《基于IBFV算法的二维矢量场可视化》文章中,对IBFV算法进行了简单描述与讨论,由于IBFV算法充分利用了计算机图形硬件的纹理映射和图像混合功能,可以获取高速的矢量场动画,能够很好的表征矢量场的运动变化情况。但单帧动画图像对比度较低,纹理细节不清晰,下面提出一种算法改进策略,简单概括为: 首先通过质点平流获得一系列的矢量纹理, 然后将这些矢量纹理作为 IBFV 算法中的背景图像,代替原来的噪声纹理与帧缓存中的纹理进行图像混合生成新图。通过这种方式不仅可以准确的反应流场的动态变化,而且增强了矢量线间的对比,同时还可以获得较高的绘制速度。
       1. 算法基本流程
       下图为算法生成第 i 帧流场动画的流程图,首先初始化质点集,包括质点的位置、速度、颜色等,然后将网格单元沿流场方向平流,计算网格单元每个顶点平流位置,然后进行网格单元纹理映射,即将原网格单元内的图像映射到平流后得到的新网格单元内。若已生成的动画帧数 i 小于图像平流周期 M ,则进行质点平流,构造背景图像,否则直接调用通过质点平流已经构造的背景图像,最后将背景图像与缓存中纹理图像进行图像混合,产生新图并显示。
                                                                              
       在该算法中,质点位置为矢量场相应网格点坐标,即在每个网格点上摆放一个质点,质点速度为相应网格点坐标处的矢量值,质点颜色为随机白噪声生成的灰度值。在质点平流期间,算法主要计算量集中在质点管理、卷积等操作上,计算较耗时,相应的流场动画绘制速度较慢;平流结束后,算法主要计算量集中在纹理映射及图像混合等操作上,而纹理映射及图像混合均为 OpenGL 的标准操作,已得到了图形硬件的广泛支持,因此流场动画绘制速度非常快。
       2. 质点平流
       质点平流思想主要源于不稳定流场可视化, Shen Kao UFLIC Unsteady Flow LIC )算法从质点平流的角度重新阐释了 LIC算法 思想,并成功应用于不稳定流场的可视化。一般情况下,设在白噪声图像每个像素点位置都放置一个质点,该质点被释放后将沿着流场的方向流动,每到一个新的位置,都留下“印记”,也就是初始位置像素点的灰度值和对新位置处像素点的贡献值,另一方面,白噪声图像中的每个像素点又作为一个接收者,保存经过该像素点的质点“印记”。如下图 所示:
                                                                                   
质点 P1 P2 从像素点 A B 出发,沿流场方向被平流到像素点 C C 作为接受者将保存 P1 P2 留下的“印记”,即 A   B 像素点的灰度值以及贡献值。质点平流的位置可以由欧拉法计算,也可以使用中点法或者精度更高的四阶龙格库塔法计算。经过多次平流后,将每个像素点保存的“印记”进行卷积,最终获得流场的矢量纹理图像。对任意像素点灰度值 I(p) ,若采用盒式卷积核函数进行计算,则计算公式为:
                                                                                     
其中 T(p) 为该像素点接收到的噪声纹理值, N 为接收到的质点个数。如果对所有质点每平流一次,然后就对每个像素点进行卷积,将获得一系列的矢量图像,此时已平流步数将是卷积长度。下图 为平流步数分别为   8   16   24     32 时获得的矢量图像,随着平流步数增加,矢量线越来越平滑,纹理细节逐渐清晰,平流步数为 32 时,图像质量又有所提高,但改善的幅度明显减缓,同时平流步数较大,计算也比较耗时,一般合理的平流步数在   24   32   之间。
                                           增强的IBFV二维矢量场可视化算法_第1张图片
       3. 构造背景图像
       通过前文 的讨论,已经知道标准 IBFV 算法图像对比度低的主要原因,即由参与卷积的每一项均来自不同的背景噪声纹理导致。可采用将质点平流获得的矢量纹理作为背景图像的方法来改善图像的对比度。则前文中公式   (7)   变为:
                                                                                                
       由于卷积项 I(pi) 是通过质点平流获得的像素灰度值,此时矢量线上的像素点已经具有一定的方向相关性,所以相比原噪声背景图像,纹理细节显然将变得清晰。即将纹理细节逐渐清晰的矢量图像不断与帧缓存中已平流的图像进行混合,最终获得高质量的流场动态显示效果。 通过质点平流获得的矢量纹理还不能直接应用,否则图像对比度将会非常低。可采用方波信号进行滤波,即
                                                                               
对上图 滤波的结果如下图 所示:
                                           增强的IBFV二维矢量场可视化算法_第2张图片
       在将经过滤波的矢量纹理逐步混合到缓存中,由于背景图像是一系列由模糊逐渐清晰的图像,所以在图像平流过程中将出现图像由清晰变为模糊,随后又逐渐清晰的情况,主要是每个图像平流周期开始后,比较模糊的第一幅背景图像将首先被混合进帧缓存的原因。可以通过减小混合因子 α 的方式,减弱背景图像对缓存中纹理的影响,使动画帧间的跳变消失。
       4. 实验结果
       选用三组稳定矢量场数据测试该算法,数据 1 为模拟马鞍型矢量场,分辨率为 300 × 300 ,数据 2 为涡流矢量场,分辨率为 256 × 256 ,数据 3 为数值预报风场数据,分辨率为 121 × 125 ,为方便研究及观察,通过双线性插值,数据分辨率为 256 × 256 。图像平流周期为32,算法混合因子α为0.02。 图1 为质点平流结束后获得的流场动态显示效果图,图 1 上面三幅图为采用标准 IBFV 算法获得的流场动画帧图像,图 1 下面三幅图为采用本文算法获得的动画帧图像。从对比效果看,采用本文算法后,图像对比度明显得到了提高,纹理细节更加清晰,矢量特征更容易区分。
                                           增强的IBFV二维矢量场可视化算法_第3张图片
       下图为选用两组不稳定矢量场数据测试该算法得到的部分矢量动画帧 数据 1 为模拟不稳定涡流数据,共计 50 个时间步,数据大小为 256 × 256 ;数据 2 为数值预报风场数据,共计 28 个时间步,数据大小为 55 × 82 ,为方便研究及观察,通过双线性插值,数据大小为 256 × 256 。对于不稳定矢量场,平流周期数即为时间步数,平流步数为固定的数值,本文为24,算法混合因子α0.1。
                              增强的IBFV二维矢量场可视化算法_第4张图片
                             
                             
                             增强的IBFV二维矢量场可视化算法_第5张图片



参考文献:
1   Liu Z.P, Moorhead R.J. Accelerated Unsteady Flow Line Integral Convolution. IEEE Transactions on Visualization and Computer Graphics, 2005, 11(2) : 113-125.
2   Shen H.W, Kao D.L. A New Line Integral Convolution Algorithm for Visualizing Time-Varying Flow Fields. IEEE Transactions on Visualization and Computer Graphics, 1998, 4(2) : 98-108.
3   Jobard B, Erlebacher G, Hussaini M.Y. Lagrangian-Eulerian Advection of Noise and Dye Textures for Unsteady Flow Visualization. IEEE Transactions on Visualization and Computer Graphics, 2002, 8(3) : 211-222.


你可能感兴趣的:(增强的IBFV二维矢量场可视化算法)