兩個輪廓距離的度量

閑時看一篇科學可視化(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...
    胤醚貔貅閱讀 13,202評論 3 89
  • 更新:【面試題含答案】http://bbs.9ria.com/thread-288394-1-1.html 高頻問...
    好怕怕閱讀 4,793評論 3 52
  • 本文基于一個簡單的Demo流程介紹了Activiti框架啟動、部署、運行過程。 Demo準備 流程圖文件: 流程圖...
    yingzong閱讀 23,517評論 3 56
  • 一、《莊子?內篇?養生主》中“敗壞世道人心”觀點 1、“吾生也有涯,而知也無涯,以有涯隨無涯,殆已;已而為知者,殆...
    祥和鴻泰閱讀 329評論 1 1
  • 今天繼續審核發票,公司整體要有變動,下午開了兩個多小時部門會議,七點半出公司。 又快到五月了,房租到期,漲價六百,...
    從練習中成長閱讀 200評論 0 1