我有一堆開放多孔結構的二進制影像,我想得到一個二進制掩碼,它覆寫結構的整個體積(結構本身和結構中包含的空隙)。我認為實作我的目標的一個好方法是計算影像的凸包。這在 Python 中運行良好skimage.morphology.convex_hull_image(參見圖片)。


但我需要 C 中的這個功能,我想使用 DIPlib 庫。不幸的是,由于檔案讓我有些困惑,因此我正在努力實作正確的實作。
- 您能否提供一個最小示例來解釋如何將二進制物件的凸包匯出為影像?
- DIPlib 實作是否也處理 3D 影像?
uj5u.com熱心網友回復:
您想使用該功能dip::MakeRegionsConvex2D()。例如:
dip::Image img = dip.ImageRead('yIFuP.jpg');
dip::Image bin = img > 128; // assuming img is scalar
dip::MakeRegionsConvex2D(bin, bin);
此函式是為 2D 影像明確撰寫的,不適用于 3D 影像。
對于 3D 影像,我將獲取所有設定像素的坐標串列(使用dip::Find),并將其傳遞給 quickhull 演算法實作,例如CGAL 中的那個,然后將生成的 3D 多面體繪制到影像中。最后一步可能是最具挑戰性的一步(我不知道 CGAL 是否具有將多面體渲染到影像的功能)。快速而骯臟的解決方案是遍歷所有像素,并為每個像素進行輸入/輸出測驗,設定像素是否位于多面體內部。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/511631.html
標籤:C 图像处理目录库
