ROI 備用匯出方案:存取輸出檔
首先通過 Horos 公開的程式碼,了解 OrisiX MD 內的 ROI 曲線是通過 Spline interpolation 生成;然後可從官方匯出功能得到 ROI 標注點的座標。所以,我們用 Numpy 照樣刻一套。StackOverflow 參考文章
import numpy as np
from scipy.interpolate import splprep, splev
nodes = np.array(point_pairs)
x = nodes[:,0]
y = nodes[:,1]
tck, u = splprep([x, y], s=0, per=True)
xi, yi = splev(np.linspace(0, 1, 1200), tck)
接著用 Shoelace formula 計算面積。StackOverflow 參考文章
S1 = np.sum(xi * np.roll(yi, -1))
S2 = np.sum(yi * np.roll(xi, -1))
area = .5 * np.absolute(S1 - S2)
面積部分是計算來說服老闆,home-made software 的計算效果跟 OsiriX MD 針對 ROI 區域的面積一樣。不過,實際上誤差大約 0.1% 到 0.05% 之間,原因我還沒找到。效果大概如圖所示:

藍色是我生成的。紅色的點是研究助理圈選 ROI 的時候標注的。綠色的線是 OrisirX MD 自己生成的。