ASD定義如下:
(注意ASD并不對稱,與豪斯多夫距離一樣,ASSD是對稱的,求了均值)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL3llaNBTVE9keNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5kDO0EDOxATM5EzMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在三維資料中,需要計算體素表面的距離,如果三維資料集合A有m個點,三維資料集和B有n個點,那麼,計算A到B的距離,需要計算A中每一個點與B中每一個點的距離,算法複雜度m*n;
這裡推薦Deep Mind公布的計算方法:https://github.com/deepmind/surface-distance
代碼寫的非常棒,了解起來有些麻煩,特記錄如下:
主要思想:通過對體素資料,體素點與體素點之間的距離進行編碼,建立查找表,進而極大減小了運算量和算法複雜度,進而計算點與點之間的距離。這裡需要注意的是,體素與體素之間的距離計算是以機關體積進行計算的。
主要步驟如下:
非常棒的實作方法,其中用到了scipy中的一些函數。