FlexBox is a fexible MATLAB toolbox for finite dimensional convex variational problems in image processing and beyond.
Switch branches/tags
Nothing to show
Clone or download


FlexBox - A Flexible Primal-Dual ToolBox


FlexBox is a flexible MATLAB toolbox for finite dimensional convex variational problems in image processing and beyond

Nowadays, many problems in image processing consist of minimizing convex energies. Typically these problems can be written as

Problem formulation ,

where A denotes a linear operator and F is a proper, convex and lower-semicontinuous function. This Problem refers to the so-called primal formulation of the minimization problem and x in R^N is known as the primal variable we are interested in recovering.


*Institute for Computational and Applied Mathematics University of Muenster, Germany


FlexBox is copyright ©2016-2017 by Hendrik Dirks. If you plan to distribute the software (commercially or not), please contact Hendrik Dirks for more information.


In order to use the MATLAB version of FlexBox the following requirements should be met:

  • Matlab >= R2015b
  • Image Processing Toolbox

In order to use the C++/CUDA version please refer to the repository: https://github.com/HendrikMuenster/flexBox_CPP


We recommend to look at the provided examples in the folder examples/.

C++/CUDA Module

FlexBox comes with a C++ module which can be used stand-alone or together with MATLAB via MEX-interfaces. The C++ module can be found at https://github.com/HendrikMuenster/flexBox_CPP and it is included in this repository as a submodule in the directory flexBox_CPP. For installation instructions please read the README in the linked repository.


If you use this toolbox please use the following citation

  Title         = {A Flexible Primal-Dual Toolbox},
  Author        = {Dirks, Hendrik},
  Journal       = {ArXiv e-prints},
  Year          = {2016},
  Month         = mar,
  Keywords      = {Mathematics - Optimization and Control, Computer Science - Computer Vision and Pattern Recognition, Computer Science - Mathematical Software, I.4, G.1.6, G.4},
  Primaryclass  = {math.OC}

A preprint of the article can be found at http://arxiv.org/abs/1603.05835

Reporting Bugs

In case you experience any problems, please create an issue at https://github.com/HendrikMuenster/flexBox/issues or https://github.com/HendrikMuenster/flexBox_CPP/issues