|
| 1 | +--- |
| 2 | +layout: pw44-project |
| 3 | + |
| 4 | +permalink: /:path/ |
| 5 | + |
| 6 | +project_title: SlicerAdaptiveBrush - Adaptive Brush Segment Editor Effect |
| 7 | +category: Segmentation / Classification / Landmarking |
| 8 | +presenter_location: In-person |
| 9 | + |
| 10 | +key_investigators: |
| 11 | + |
| 12 | +- name: Ben Zwick |
| 13 | + affiliation: The University of Western Australia and Talk2View |
| 14 | + country: Australia |
| 15 | + |
| 16 | +- name: Andy Huynh |
| 17 | + affiliation: Talk2View |
| 18 | + country: Australia |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +# Project Description |
| 23 | + |
| 24 | +<!-- Add a short paragraph describing the project. --> |
| 25 | + |
| 26 | +SlicerAdaptiveBrush is a segment editor effect extension for 3D Slicer that provides an adaptive brush tool for semi-automatic segmentation. The brush automatically segments regions based on image intensity similarity within the brush area, adapting to image features (edges, boundaries) rather than using a fixed geometric shape. |
| 27 | + |
| 28 | +## Objective |
| 29 | + |
| 30 | +<!-- Describe here WHAT you would like to achieve (what you will have as end result). --> |
| 31 | + |
| 32 | +1. Submit to Extension Index |
| 33 | +2. Improve documentation and tutorials |
| 34 | +3. Optimize performance for real-time interaction |
| 35 | +4. Add GPU acceleration for Level Set algorithm |
| 36 | + |
| 37 | +## Approach and Plan |
| 38 | + |
| 39 | +<!-- Describe here HOW you would like to achieve the objectives stated above. --> |
| 40 | + |
| 41 | +### 1. Submit to Extension Index |
| 42 | + |
| 43 | +- Complete submission requirements |
| 44 | +- Test on all platforms (Linux, macOS, Windows) |
| 45 | +- Create extension icon and screenshots |
| 46 | + |
| 47 | +### 2. Improve documentation |
| 48 | + |
| 49 | +- Write user tutorial with example workflows |
| 50 | +- Document algorithm selection guide |
| 51 | +- Add parameter tuning recommendations |
| 52 | + |
| 53 | +### 3. Optimize performance |
| 54 | + |
| 55 | +- Profile and optimize critical paths |
| 56 | +- Implement ROI result caching for nearby brush positions |
| 57 | +- Add slice-by-slice preview mode |
| 58 | + |
| 59 | +### 4. GPU acceleration |
| 60 | + |
| 61 | +- Implement OpenCL/CUDA backend for Level Set |
| 62 | +- Benchmark CPU vs GPU performance |
| 63 | + |
| 64 | +## Progress and Next Steps |
| 65 | + |
| 66 | +<!-- Update this section as you make progress, describing of what you have ACTUALLY DONE. |
| 67 | + If there are specific steps that you could not complete then you can describe them here, too. --> |
| 68 | + |
| 69 | +1. ... |
| 70 | + |
| 71 | +# Illustrations |
| 72 | + |
| 73 | +<!-- Add pictures and links to videos that demonstrate what has been accomplished. |
| 74 | + |
| 75 | + |
| 76 | +--> |
| 77 | + |
| 78 | +# Background and References |
| 79 | + |
| 80 | +<!-- If you developed any software, include link to the source code repository. |
| 81 | + If possible, also add links to sample data, and to any relevant publications. --> |
| 82 | + |
| 83 | +Code repository: |
| 84 | + |
| 85 | +- <https://github.com/benzwick/SlicerAdaptiveBrush> |
| 86 | + |
| 87 | +## Features |
| 88 | + |
| 89 | +- **Multiple algorithm choices** - Geodesic Distance, Watershed, Random Walker, Level Set, Connected Threshold, Region Growing, Threshold Brush |
| 90 | +- **Auto-threshold methods** - Otsu, Huang, Triangle, Maximum Entropy, IsoData, Li |
| 91 | +- **Automatic intensity analysis** - GMM-based threshold estimation adapts to image content |
| 92 | +- **Edge-aware boundaries** - Respects anatomical boundaries automatically |
| 93 | +- **2D and 3D modes** - Works on single slices or volumetrically (sphere mode) |
| 94 | + |
| 95 | +## References |
| 96 | + |
| 97 | +- [ITK-SNAP Adaptive Brush](https://www.itksnap.org/) - Original inspiration |
| 98 | +- [3D Slicer Segment Editor](https://slicer.readthedocs.io/en/latest/user_guide/modules/segmenteditor.html) |
| 99 | +- [SlicerSegmentEditorExtraEffects](https://github.com/lassoan/SlicerSegmentEditorExtraEffects) |
0 commit comments