Intelligent Scissors
Cached shortest paths and stabilized live boundaries in a Java segmentation tool, reducing completion time by 5.2–11.2× on two reported tasks.
Keeping Boundary Tracing Interactive
In a Java Swing segmentation project, I implemented image-graph construction, Dijkstra/A* search, and caching for live boundary tracing. Strong image gradients defined low-cost paths, letting a user guide the selection with seed points instead of tracing every edge manually.
The main optimization was to cache the shortest-path tree for the active seed. Cursor movement then required predecessor-path traversal rather than a new graph search. Path Cooling automatically fixed stable segments, reducing repeated clicks while retaining interactive control.

Measured on Two Segmentation Tasks
In a two-image comparison against manual polygon-lasso selection in Photoshop 2020, the tool reduced task completion time by 5.2× and 11.2×:
| Test Image | Manual Lasso | Intelligent Scissors | IoU | Dice |
|---|---|---|---|---|
| Cartoon, 661 × 494 px | 551 s | 106 s | 0.88 | 0.94 |
| Parrots, 707 × 480 px | 279 s | 25 s | 0.97 | 0.99 |
These are end-to-end interaction times on the two reported tasks. The implementation combined reusable graph computation with interface behavior that helped users complete a selection.