vol_rle_difference — 3D rle_region op

• 資料種類:rle_region × rle_region → rle_region

• 呼叫: import fullseye as fs; fs.ledger.vol_rle_difference(a, b)(要直接呼叫實作,import volregion; volregion.vol_rle_difference(a, b);從台帳取用則 ops3d.get("vol_rle_difference"))

用法

在 run 上的差集 a \ b(不解碼)。

包含在 a 中且不包含在 b 中的 voxel 的 region。用掃掠引擎(_rle_boolean) 把每個區間覆蓋狀態為 ia & ~ib 的區間保留為 run。不可交換(vol_rle_difference(a, b) != vol_rle_difference(b, a))。計算量相對 run 數為 O(n log n)。

回傳值: 相同 shape 的新 VolRLE。若 a 完全包含在 b 中,則為 run 0 個的 region。vol_rle_decode(result) == decode(a) & ~decode(b) 在 voxel 層級成立。

驗證(ValueError): 任一方不是 VolRLE 或 run 陣列的一致性檢查失敗 / a.shape != b.shape。

使用時機: 從整體遮罩中去除 ROI 外或已知的成分(vol_rle_components 中的 1 個)、用 vol_rle_encode(mask) 與 erode 結果之差製作殼層等「減法」,無需建構密集陣列即可完成。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• rle_region_efficiency — py -3.11 examples_3d/rle_region_efficiency.py

型別可銜接的下一個運算子(可接受 rle_region 作為輸入)

vol_rle_decode · vol_rle_volume · vol_rle_bbox · vol_rle_centroid · vol_rle_union · vol_rle_intersect · fuse_to_voxel

同類別(rle_region)

vol_rle_encode · vol_rle_decode · vol_rle_volume · vol_rle_bbox · vol_rle_centroid · vol_rle_union · vol_rle_intersect · vol_rle_components


*Provenance: volregion.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.