grabcut
GrabCut is a classic interactive method for cutting one foreground object out of its background with almost no user effort: you just drag a rectangle loosely around the object, and the algorithm figures out the precise outline. It was designed (Rother, Kolmogorov, Blake, 2004) to make the powerful but fiddly graph-cut segmentation easy enough for a casual user — hence the name, a grab-and-cut.
Under the hood it alternates two steps until they settle, an expectation-maximization style loop. First, it models the colors of the foreground and the background each with a Gaussian Mixture Model (a flexible blend of color clusters): everything outside your box is definitely background; everything inside starts as probable foreground. Second, it phrases the labeling as an energy to minimize — a data term saying each pixel should take the label whose color model fits it better, plus a smoothness term penalizing label changes between similar neighboring pixels — and solves it exactly and globally with a min-cut / max-flow on a pixel graph. The new labels refine the color models, the refined models give a better cut, and so on.
GrabCut sits at the heart of the graph-cut family that minimizes energies via min-cut (Boykov-Jolly and Boykov-Kolmogorov). Compared to a single graph cut it adds the iterative color re-estimation and the rectangle-only interaction. Users can correct mistakes with a few foreground/background brush strokes. It remains a fast, dependable tool for foreground extraction in photo editors and is a clean illustration of energy-minimization segmentation, though for hard cases deep interactive methods now do better with fewer hints.