閑時看一篇科學(xué)可視化(SciVis)的文章:Visual Analysis of Multi-run Spatio-temporal Simulations. 看到Isocontour(等值輪廓),就覺得自己對這個概念的理解很模糊,于是有了以下的學(xué)習(xí)筆記。
文章中提出了一種方法來度量兩個Isocontour(等值輪廓)的距離,用的是蒙特卡洛方法,挺有意思。首先,我介紹一下什么是等值面(Isosurface),然后再討論什么是Isocontour(等值輪廓),最后詳述一下作者如何用蒙特卡洛方法計算兩個Isocontour(等值輪廓)的距離。
等值面(Isosurface)
Wiki上的解釋是:等值面指的是密度或特征近似的一個面,它通常被用于圖形學(xué)領(lǐng)域(早期可視化是圖形學(xué)的一個分支,現(xiàn)在獨立出來成為了一個研究領(lǐng)域),并且也用于CFD流體數(shù)據(jù)的可視化上,它使得工程師可以看到某些物體周圍流體的特征,例如機翼附近的流場。在醫(yī)學(xué)圖像處理領(lǐng)域,等值面被用于表征一個三維CT數(shù)據(jù)里相似密度的區(qū)域,這可以幫助可視化人體的器官,骨骼以及其它的結(jié)構(gòu)。從應(yīng)用領(lǐng)域來說,等值面和科學(xué)可視化非常相關(guān)。在我看來,大家熟知的地理上用的等高線是等值面的一種特殊形式。
提取等值面有很多的方法,Marching Cubes是最常見的一種,常用于提取3D流體數(shù)據(jù)的表面。通過基于物理的計算,可以生成3D流體粒子數(shù)據(jù)(SPH就是一種流體粒子的繪制技術(shù)),但在真實感圖形動畫中,一般支持的是面(Mesh),因此呢,由Marching Cubes生成的Isosurface就能提供真實感繪制需要的Mesh。

等值輪廓(Isocontour)
知道了等值面后,等值輪廓就很容易理解了,就是等值面的邊緣部分。
等值輪廓的距離

首先,定義好等值輪廓的2D空間畫布,然后往畫布上隨機撒點,用插值的梯度函數(shù)判斷點是否在某個等值輪廓上。這樣的話就可以得到A和B的兩個屬性向量Va和Vb,向量的維度就是落在等值輪廓里點的數(shù)量。Va和Vb可以近似表達等值輪廓的大小和形狀。A^B代表同時落在兩個輪廓里的點的數(shù)量。AVB代表落在輪廓A或B里的點的數(shù)量。然后,Jaccard 距離計算最后的距離,這個距離計算方法常用于計算集合的相似度,具體出處可參考論文Distance between Sets。
