Skip to content
FlexBox is a fexible MATLAB toolbox for finite dimensional convex variational problems in image processing and beyond.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
flexBox_CPP @ 975b5b4 update cpp submodule Nov 4, 2017
manual master Mar 15, 2016
operators fixed bug in blur-/convolutionOperator, transposed and non-transposed… Feb 5, 2018
prox added nuclear norm and corresponding prox operator Apr 2, 2018
tools moved abstract method applyProx() to abstract basicProx for easier co… Mar 27, 2017
.gitmodules added flexbox cpp module as submodule Jan 9, 2017
0001-converted-to-octave.patch new patch for modified basicOperator.m Mar 31, 2017
flexBox.m update submodule and calculate residual before iterating Oct 11, 2017

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:


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 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

Reporting Bugs

In case you experience any problems, please create an issue at or

You can’t perform that action at this time.