Otsu's method (1979) finds the threshold t* maximizing between-class variance σ²B(t) = ω₀ω₁(μ₀−μ₁)². Drag the slider or press Auto Otsu.
Original & Histogram
Binary Result THRESHOLD
σ²B(t). Green line = optimal t*. Red line = your slider.
Click to place a seed. The region grows by adding neighbors where |I(q) − μR| < τ. Watch it expand in real-time. Try different tolerances to see leakage vs tight segmentation.
Click to seed
Mask View
μR updates adaptively as the region grows.
Live-wire finds the minimum-cost path via Dijkstra. The local cost between pixels p→q is:
l(p,q) = ωG·fG(q) + ωZ·fZ(q) + ωD·fD(p,q)
fG = inverse gradient magnitude
fZ = Laplacian zero-crossing
fD = gradient direction cost.
Click to place anchors. Green dashed line follows your cursor.
Live-Wire Contour
Combined Cost Map WEIGHTED
fG = 1 − G/max(G) — low at strong edgesfZ = 0 at Laplacian zero-crossings, 1 elsewherefD penalizes turning away from the gradient normal directionAdjust ω sliders to see how each component shapes the cost map and path.
Draw two regions to compare. Region A = ground truth, Region B = prediction. Click Compute to see Dice, Jaccard, sensitivity, specificity and the overlap map.