两个轮廓距离的度量

闲时看一篇科学可视化(SciVis)的文章:Visual Analysis of Multi-run Spatio-temporal Simulations. 看到Isocontour(等值轮廓),就觉得自己对这个概念的理解很模糊,于是有了以下的学习笔记。

文章中提出了一种方法来度量两个Isocontour(等值轮廓)的距离,用的是蒙特卡洛方法,挺有意思。首先,我介绍一下什么是等值面(Isosurface),然后再讨论什么是Isocontour(等值轮廓),最后详述一下作者如何用蒙特卡洛方法计算两个Isocontour(等值轮廓)的距离。

等值面(Isosurface)

Wiki上的解释是:等值面指的是密度或特征近似的一个面,它通常被用于图形学领域(早期可视化是图形学的一个分支,现在独立出来成为了一个研究领域),并且也用于CFD流体数据的可视化上,它使得工程师可以看到某些物体周围流体的特征,例如机翼附近的流场。在医学图像处理领域,等值面被用于表征一个三维CT数据里相似密度的区域,这可以帮助可视化人体的器官,骨骼以及其它的结构。从应用领域来说,等值面和科学可视化非常相关。在我看来,大家熟知的地理上用的等高线是等值面的一种特殊形式。

提取等值面有很多的方法,Marching Cubes是最常见的一种,常用于提取3D流体数据的表面。通过基于物理的计算,可以生成3D流体粒子数据(SPH就是一种流体粒子的绘制技术),但在真实感图形动画中,一般支持的是面(Mesh),因此呢,由Marching Cubes生成的Isosurface就能提供真实感绘制需要的Mesh。

Marching Cubes方法的15种Pattern

等值轮廓(Isocontour)

知道了等值面后,等值轮廓就很容易理解了,就是等值面的边缘部分。

等值轮廓的距离

蓝色和绿色分别代表两个等值轮廓

首先,定义好等值轮廓的2D空间画布,然后往画布上随机撒点,用插值的梯度函数判断点是否在某个等值轮廓上。这样的话就可以得到A和B的两个属性向量Va和Vb,向量的维度就是落在等值轮廓里点的数量。Va和Vb可以近似表达等值轮廓的大小和形状。A^B代表同时落在两个轮廓里的点的数量。AVB代表落在轮廓A或B里的点的数量。然后,Jaccard 距离计算最后的距离,这个距离计算方法常用于计算集合的相似度,具体出处可参考论文Distance between Sets

距离计算公式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画->点缓存->关键帧 112. [动画]Unit...
    胤醚貔貅阅读 14,513评论 3 89
  • 更新:【面试题含答案】http://bbs.9ria.com/thread-288394-1-1.html 高频问...
    好怕怕阅读 10,252评论 3 52
  • 本文基于一个简单的Demo流程介绍了Activiti框架启动、部署、运行过程。 Demo准备 流程图文件: 流程图...
    yingzong阅读 23,640评论 3 56
  • 一、《庄子•内篇•养生主》中“败坏世道人心”观点 1、“吾生也有涯,而知也无涯,以有涯随无涯,殆已;已而为知者,殆...
    祥和鸿泰阅读 2,578评论 1 1
  • 今天继续审核发票,公司整体要有变动,下午开了两个多小时部门会议,七点半出公司。 又快到五月了,房租到期,涨价六百,...
    从练习中成长阅读 1,339评论 0 1