Multilabel image segmentation (color/gray/multichannel) based on the Potts model (aka piecewise constant Mumford-Shah model)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Auxiliary - updated installer Dec 5, 2017
Data - initial commit Apr 20, 2017
Demos - initial commit Apr 20, 2017
Docs documentation images Apr 21, 2017
Java - initial commit Apr 20, 2017
Plugins ImageJ plugin Apr 21, 2017
Potts - initial commit Apr 20, 2017
Potts2D - initial commit Apr 20, 2017
Sparsity - initial commit Apr 20, 2017
Tikhonov - initial commit Apr 20, 2017
License.txt - License file Dec 4, 2017 Update Jul 24, 2018
installPottslab.m - License Dec 4, 2017


Pottslab is a Matlab/Java toolbox for the reconstruction of jump-sparse signals and images using the Potts model (also known as "piecewise constant Mumford-Shah model" or "l0 gradient model"). Applications include denoising of piecewise constant signals, step detection and segmentation of multichannel image.

-- See also the Pick of the Week by Mathworks --

Application examples

Segmentation of vector-valued images

  • Supports segmentation of vector-valued images (e.g. multispectral images, feature images)
  • Linear complexity in number of color channels
  • Label-free: No label discretization required

Vector-valued segmentation

Left: A natural image; Right: Result using Potts model

Vector-valued segmentation

Texture segmentation using highdimensional curvelet-based feature vectors

Used as segmentation method in

Joint image reconstruction and segmentation

  • Applicable to many imaging operators, e.g. convolution, Radon transform, MRI, PET, MPI: only implementation of proximal mapping reuqired - Supports vector-valued data - Label-free: Labels need NOT be chosen a-priori

Phantom Phantom Phantom

Left: Shepp-Logan phantom; Center: Filtered backprojection from 7 angular projections; Right: Joint reconstruction and segmentation using the Potts model from 7 angular projections

Denoising of jump-sparse/piecewise-constant signals, or step detection/changepoint detection

  • L1 Potts model is robust to noise and to moderately blurred data
  • Fast and exact solver for L1 Potts model
  • Approximative strategies for severely blurred data


Top: Noisy signal; Bottom: Minimizer of Potts functional (ground truth in red)

Used as step detection algorithm in



  • Run the script "installPottslab.m", it should set all necessary paths
  • For best performance, increase Java heap space in the Matlab preferences (MATLAB - General - Java heap memory)
  • Run a demo from the Demos folder


Plugins for Image Analysis GUIs

Parts of Pottslab can be used without Matlab as pure Java plugins

  • Icy plugin - an interactive image segmentation plugin based on Pottslab (written by Vasileios Angelopoulos)
  • ImageJ plugin - an ImageJ frontend for Pottslab (written by Michael Kaul)


  • M. Storath, A. Weinmann, J. Frikel, M. Unser. "Joint image reconstruction and segmentation using the Potts model" Inverse Problems, 2015
  • A. Weinmann, M. Storath. "Iterative Potts and Blake-Zisserman minimization for the recovery of functions with discontinuities from indirect measurements." Proceedings of The Royal Society A, 471(2176), 2015
  • A. Weinmann, M. Storath, L. Demaret. "The L1-Potts functional for robust jump-sparse reconstruction" SIAM Journal on Numerical Analysis, 2015
  • M. Storath, A. Weinmann. "Fast partitioning of vector-valued images" SIAM Journal on Imaging Sciences, 2014
  • M. Storath, A. Weinmann, L. Demaret. "Jump-sparse and sparse recovery using Potts functionals" IEEE Transactions on Signal Processing, 2014