# Downloads

## Licence and notice

- The source codes on this page are distributed under the GPL3 General Public Licence. In short, if you distribute a software that uses one of our code, you have to distribute it under GPL with the source code. Another option is to contact us to purchase a commercial license.
- If you plan to use our code/software in a research project, please cite our papers related to the code you use (if any).

## Toolboxes available on this page

- RIS: Reconstruction of Inextensible Surfaces
- BBS: Bicubic B-Splines
- CBS: Cubic B-Splines
- MEST: M-Estimators
- II: Image Interpolation
- MISC: Matlab practIcal SCripts

# RIS: Reconstruction of Inextensible Surfaces

ris.zip (1.5 Mo)

## Description

Matlab code related to our ACCV2010 paper for reconstructing deformable and inextensible 3D surfaces from a single point of view. In addition to the implementation of the approaches proposed in our ACCV paper, other methods are implemented in this toolbox (see the paper to know which ones).

## Dependencies

- BBS: personnal Matlab toolbox for handling bicubic b-splines (downloadable below).
- CVX: third party Matlab Software for Disciplined Convex Programming. This toolbox is downloadable here.

## Instructions

- RIS is pure matlab code so no need to compile anything.
- The toolboxes BBS and CVX must be installed in your computer before running any script from the RIS toolbox. In particular, you must add to the matlab path the folder of the BBS toolbox and the subfolder "sedumi" of the CVX toolbox.
- The probably most interesting script of the toolbox is "expe_real.m": it reconstructs a surface with all the algorithms used in our ACCV paper.
- The data for an example is provided in the toolbox.

# BBS: Bicubic B-Splines

Source code: bbs.zip (27 ko)

Binary version (for Windows 64 bits, optimized for 4 processors): bbs-win64.zip (70 ko)

Source code (without OpenMP, see description below): bbs-noomp.zip (28 ko)

If you have successfully compiled BBS with a different setup and want to share it, I would be glad to put it online here - just send me an email.

## Description

BBS is a matlab toolbox to efficiently handle bicubic B-splines. Efficiency is achieved by partly coding this toolbox in C/C++ using mex-files. Besides, some of the algorithms are optimized for parallel architectures using OpenMP.

Parallelization is achieved using OpenMP. Although OpenMP is a broadly supported standard, some C/C++ compiler does not implement it (in particular, it seems that it is the case for the "Express" editions of Visual Studio). If you have troubles compiling BBS, try the version that does not use OpenMP (of course, by doing so, you will loose the benefits of parallelization). Another solution for the "Express" editions of Visual Studio is to manually add the support to OpenMP (it seems to be possible according to, for instance, this website).

## Instructions

If you download the source code of this toolbox (which is the preferred way), you will need to compile the mex-files. To do so, just run the script named "compile.m". There are a few options with self-explaining names at the beginning of this script if you want to tune the toolbox according to your needs and/or your hardware.

## See also

The CBS toolbox for monodimensional cubic B-splines.

# CBS: Cubic B-Splines

Source code: cbs.zip (32 ko)

Binary version (for Windows 64 bits, optimized for 4 processors): cbs-win64.zip (55 ko)

Source code (without OpenMP, see description below): cbs-noomp.zip (32 ko)

If you have successfully compiled CBS with a different setup and want to share it, I would be glad to put it online here - just send me an email.

## Description

CBS is a matlab toolbox to efficiently handle cubic B-splines. Efficiency is achieved by partly coding this toolbox in C/C++ using mex-files. Besides, some of the algorithms are optimized for parallel architectures using OpenMP. CBS has an API which is very similar to BBS. Historically, BBS was written before CBS and, therefore, CBS is derived from BBS. The output of the splines with both CBS and BBS may be of any dimension. However, being that generic for the input dimension is not easy and would certainly have a cost in terms of efficiency. This is the reason why monodimensional and bidimensional cubic B-splines have been implemented in different toolboxes (CBS and BBS respectively).

Parallelization is achieved using OpenMP. Although OpenMP is a broadly supported standard, some C/C++ compiler does not implement it (in particular, it seems that it is the case for the "Express" editions of Visual Studio). If you have troubles compiling CBS, try the version that does not use OpenMP (of course, by doing so, you will loose the benefits of parallelization). Another solution for the "Express" editions of Visual Studio is to manually add the support to OpenMP (it seems to be possible according to, for instance, this website).

## Instructions

If you download the source code of this toolbox (which is the preferred way), you will need to compile the mex-files. To do so, just run the script named "compile.m". There are a few options with self-explaining names at the beginning of this script if you want to tune the toolbox according to your needs and/or your hardware.

## See also

The BBS toolbox for bidimensional cubic B-splines (a.k.a. bicubic B-splines).

# MEST: M-ESTimators

mest.zip (29 ko)

## Description

MEST is a set of Matlab scripts that implements a few utility functions for handling M-estimators. More precisely, these scripts implements the rho-functions, psy-functions, and weight-functions for the following M-estimators:

- Bisquare
- Blake
- Cauchy
- Corrupted Gaussian
- Huber
- L1 norm
- L2 norm

## Instructions

There is nothing special to do with this Matlab toolbox ; just add the MEST folder to your Matlab path.

# II: Image Interpolation

The source code of this toolbox is now on GitHub: FlorentBrunet/image-interpolation-matlab

Binary version (tested on Ubuntu 11.04 64 bits with Matlab R2011a, optimized for 8 processors): ii-linux64.tar.bz2 (101 ko)

If you have successfully compiled II with a different setup and want to share it, I would be glad to put it online here - just send me an email.

## Description

2012/07/17: Update! II now handles bilinear interpolation.

II is a (project of) Matlab toolbox that provides really fast and convenient image interpolation routines. It is fast since it relies on native binary code (Mex-files) and it is implemented in parallel. It is convenient because it can handle images with multiple channels (contrarily to the "interp2" function of Matlab). ~~For now, only the bicubic interpolation scheme has been implemented (but I hope to find the time one day to implement other algorithms).~~ Bilinear interpolation has been added to the toolbox (I still need some time to do other algorithms).

## Instructions

If you download the source code of this toolbox (which is the preferred way), you will need to compile the mex-files. To do so, just run the script named "ii_compile_and_setup.m". There are a few options with self-explaining names at the beginning of this script if you want to tune the toolbox according to your needs and/or your hardware.

# MISC: Matlab practIcal SCripts

misc.zip (16 ko)

## Description

This toolbox is not really a toolbox in the sense that it is simply a collection of heterogeneous scripts that I frequently use in diffrent other projects. Right now, MISC contains the following functions (more will probably come in the future):

**deg2rad**: Convert degrees to radian (for any number of input argument)**rad2deg**: Convert radians to degrees (for any number of input argument)**normc**: Column normalization of a matrix**tr**: Compute the transpose of any number of matrices in input argument**vect**: Reshape its arguments to column-vectors (for any number of input argument)

## Instructions

There is nothing special to do to install this toolbox ; just add the MISC folder to your Matlab path.