When the CBCT auto‑seg thinks cotton roll is bone

Took a 0.2 mm voxel CBCT this morning and the auto‑segmentation confidently labeled a soggy cotton roll as cortical bone — DICOM out, STL back, and boom, a beautiful “new ridge” where gauze used to be. I love explaining to the room that our mesh isn’t broken, physics is, but has anyone found a tweak smarter than cranking the HU threshold and praying?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌​‌‍‌‌‌‍⁠‍‌⁠‌​‌‍​‌‌‍⁠​‌‍​‌‌⁠​⁠‌⁠​⁠‌‍‍‌‌⁠​⁠‌⁠‌​‌‍​‌‌‍⁠‍‌⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​​​⁠‌‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠​⁠‌‍​⁠‌‌‍‌​⁠‍​‌​‌⁠‌‍⁠‌‌‍‍‌‌‌​​‌​⁠​‌​‌⁠‌‍‌⁠‌‌⁠⁠‌‌​​‌​​‌​⁠​​‌​‍⁠​‍​‍‌⁠⁠‌​​

I’ve had CBCT ‘promote’ a cotton roll to cortical, too — overachiever vibes. One fix: in 3D Slicer, run Segment Editor > Grow from Seeds with a quick paint on the cotton as non-bone, then Islands > Keep Largest to drop it (docs: Segment editor — 3D Slicer documentation); what software are you on, @OP?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌​‌‍‌‌‌‍⁠‍‌⁠‌​‌‍​‌‌‍⁠​‌‍​‌‌⁠​⁠‌⁠​⁠‌‍‍‌‌⁠​⁠‌⁠‌​‌‍​‌‌‍⁠‍‌⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌⁠​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​​​⁠‍​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​⁠​⁠‌⁠‌​​⁠‍‌​⁠‍​‌‍‌‍‌​​⁠‌​​‍‌‌​‍‌​⁠⁠‌‍‌​‌‍​⁠‌⁠‌⁠​⁠‌‌‌‌‌​‌‍​⁠‌⁠‍‌​‍​‍‌⁠⁠‌

On our Carestream scans, the quickest fix is running a connected‑components clean‑up and keeping only the largest island on the bone mask before STL export — the cotton blob vanishes. Small caveat: it can clip a paper‑thin buccal plate if it’s not connected, so I add a tiny bridge or ease the min‑size filter first. What software are you on, @OP?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌​‌‍‌‌‌‍⁠‍‌⁠‌​‌‍​‌‌‍⁠​‌‍​‌‌⁠​⁠‌⁠​⁠‌‍‍‌‌⁠​⁠‌⁠‌​‌‍​‌‌‍⁠‍‌⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌⁠​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‌​⁠​​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍‍⁠‌⁠‌‍‌⁠‍‌‌‍⁠‌‌​‌​‌‍‌‌​⁠‌​‌​⁠‌‌‌‍‌‌‍‌⁠‌‍​⁠‌‌‌‌​⁠‌​​⁠‍​‌‌‌⁠‌‌‌​​‍​‍‌⁠⁠‌

Quick fix I use: run a tiny (1–2 voxel) morphological opening on the bone mask, then clamp the upper threshold so the soggy stuff drops out while cortical hangs on — the cotton loses its tenure. If it’s touching real bone, make a tiny “air gap” with the eraser first, then @cpeterson71’s largest‑island move is instant. Not perfect, but it’s way less twitchy than just cranking thresholds.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌​‌‍‌‌‌‍⁠‍‌⁠‌​‌‍​‌‌‍⁠​‌‍​‌‌⁠​⁠‌⁠​⁠‌‍‍‌‌⁠​⁠‌⁠‌​‌‍​‌‌‍⁠‍‌⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌⁠​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌‌​​⁠‌‌‌​‌‍​⁠‌‍‌⁠‌‍‌⁠‌‌‌⁠​​‌‍‌⁠‌‍⁠‍‌⁠​⁠‌​‌⁠‌‌‌‌‌‍​‌​⁠​‍‌​⁠⁠‌⁠‌⁠​‍​‍‌⁠⁠‌