Enric Meinhardt-Llopis

Yet another assortment of obligatory narcissism.

External links: github | google scholar | IPOL (dev, git) | CMLA | GPI


Research interests: correction of turbulence, optical flow evaluation, smooth optical flow, image registration, stereo reconstruction from satellite images, image fusion, data structures for 3D images, differential geometry.

Simple Poisson Solvers

We study some simple and standalone algorithms for solving Poisson equation in the context of image processing.
Simple Poisson Solvers for Image Processing
Enric Meinhardt-Llopis, Gabriele Facciolo, Matias di Martino
Technical report 2015

Hough Spaces

We study the precision and performance of different algorithms and spaces for Hough sampling.
Hough Spaces for the Detection of Alignements
Enric Meinhardt-Llopis
Technical report 2015

Satellite Stereo

If we have several satellite images of the same site, we can use computer vision techniques to recover a digital elevation model. This is the ultimate outdoor stereo challenge, with unique problems such as the pushbroom geometry and the high contrast between shadows and sunlit objects.
An automatic and modular stereo pipeline for pushbroom images
C. de Franchis, E. Meinhardt-Llopis, J. Michel, J.-M. Morel, G. Facciolo
ISPRS Annals of Photogrammetry and Remote Sensing, 2014

On stereo-rectification of pushbroom images
ICIP 2014

Automatic sensor orientation refinement of Pléiades stereo images

Highlight removal

A single photograph of a painting typically has many reflections due to bad illumination. However, photographs taken from different viewpoints have the reflections at different places. All these images can be blended into a single one without any visible defects.
How to blend several photographs of a painting into one
Antoni Buades, Gloria Haro, Enric Meinhardt-Llopis
IPOL, 2014

Smooth Histograms

One does not simply smooth a histogram. For the same reason that one does not simply smooth a Fourier transform. If you need a smooth histogram, you will have to do otherwise.
Getting a smooth histogram without smoothing any histogram
Enric Meinhardt-Llopis

Riemannian Image Processing

Abstract surfaces are a common tool in image processing. For example, active contours and anisotropic diffusion can both be formalized in a Riemannian setting. We explore other geometrical operations on these surfaces such as Gaussian curvature, the Laplace-Beltrami spectrum and Ricci flow.
Abstract Surfaces in Image Processing
Enric Meinhardt-Llopis, Gabriele Facciolo
(submitted Nov 2014, rejected)

Simulation of turbulence

We classify the different types of visual distortions due to the acquisiton of images through turbulent media. Then we explain how to simulate these effects using image processing operators.
Atomic models of Video Turbulence
Enric Meinhardt-Llopis
(in preparation)

Implementation of the centroid method

Karcher-Fréchet means on the manifold of deformed images correspond to the average deformation. We explain how to implement this computation using an optical flow algorithm.
Implementation of the centroid method for the correction of turbulence
Enric Meinhardt-Llopis, Mario Micheli
IPOL, 2014

Integral Images

Integral images are cool, but it is important to use them carefully due to many precision issuses that are worth studying.
Integral Images for Block Matching
Gabriele Facciolo, Nicolas Limare, Enric Meinhardt-Llopis
IPOL, 2014

Implementation of optical flow methods

Multi-scale implementations of Horn-Schunck and TV-L1 optical flow methods. Each article contains a comprehensive study of all the parameters.
Horn-Schunck optical flow with a multi-scale strategy
Enric Meinhardt-Llopis, Javier Sánchez Pérez, Daniel Kondermann
IPOL, 2013
TV-L1 optical flow estimation
Javier Sánchez Pérez, Enric Meinhardt-Llopis, Gabriele Facciolo
IPOL, 2013

Affine descriptors related to SIFT

Study and classification of SIFT-related local descriptors with regards to their invariance properties.
On affine invariant descriptors related to SIFT
Rida Sadek, Constantinos Constantinopoulos, Enric Meinhardt-Llopis, Coloma Ballester, Vicent Caselles
SIIMS, 2012

Flow tubes

A spatiotemporal segmentation together with an optical flow field can be used to guide frame interpolation and to detect occlusions.
Frame interpolation with occlusion detection using a time coherent segmentation
Rida Sadek, Coloma Ballester, Luis Garrido, Enric Meinhardt-Llopis, Vicent Caselles
VISAPP, 2012

Logo detection

Logo detection in video sequences using RANSAC matching of SIFT descriptors. The method is viable thanks to the combination of several heuristics: color cues, position, size, orientation, tracking, exclusion, etc.
A robust pipeline for logo detection
Constantinos Constantinopoulos, Enric Meinhardt-Llopis, Yunqiang Liu, Vicent Caselles
ICME, 2011

Relative depth from motion

The orientation of occlusion boundaries can be recovered from a segmented optical flow field.
Relative depth from monocular optical flow
Enric Meinhardt-Llopis, Olivier D'Hondt, Gabriele Facciolo, Vicent Caselles
ICIP, 2011

PhD Thesis

Probably the only interesting thing in this thesis is the visualization of color histograms using the tree of shapes of the color density function.
Morphological and Statistical Techniques for the Analysis of 3D images.
Enric Meinhardt-Llopis
UPF, 2011

Finsler Cheeger sets

Cheeger sets on Finsler spaces are used for segmentation, edge linking and colorization.
Anisotropic Cheeger sets and applications
Vicent Caselles, Gabriele Facciolo, Enric Meinhardt-Llopis
SIIMS, 2009

3D edge detection

Let us consider the collection of all connected patches of all level surfaces of a 3D image. An edge detector is defined as a selection procedure for elements of this collection.
3D edge detection by selection of level surface patches
Enric Meinhardt-Llopis, Ernesto Zacur, Alejandro Frangi, Vicent Caselles
JMIV, 2009

The tree of shapes as a fusion

The tree of shapes of an image of arbitrary dimsension is built by cutting and pasting the branches from the trees of connected components of upper and lower level sets.
Constructing the tree of shapes of an image by fusion of the trees of connected components of upper and lower level sets
Vicent Caselles, Enric Meinhardt-Llopis, Pascal Monasse
Positivity, 2008

Edge detection by selection

An edge detector with sparse output is defined by applying an exclusion principle to the collection of segments of level lines.
Edge detection by selection of pieces of level lines
Enric Meinhardt-Llopis
ICIP, 2008


Technology advances by continuous reinvention of the wheel.

My favourite programming languages are C, postscript and lua. I also like to write sh scripts. In the past I coded in assembler. Now, if the need arises, I can also use C++ or Python, but they are not very enjoyable.

#include <stdlib.h>
#include "iio.h"

int main()
	int w, h;
	float *x = iio_load("x.png", &w, &h);
	x[10*w + 10] = 0;
	iio_save("y.tiff", x, w, h);
	return 0;


A C library for reading small images in any format.
cat lena.png | blur gauss 2.6 | quantize 0 255 | display


A collection of independent and standalone unix-friendly programs for manipulating images.
plambda lena.png "x(1,0) x - x(0,1) x - hypot" | display


A program for computing algebraic expressions with images.
#include <stdio.h>
#include "ftr.h"

void print_event(struct FTR *f, int k, int m, int x, int y)
	printf("event k=%d m=%d x=%d y=%d\n", k, m, x, y);

int main()
	struct FTR f = ftr_new_window(320, 200);
	ftr_set_handler(&f, "key", print_event);
	ftr_set_handler(&f, "button", print_event);
	ftr_set_handler(&f, "motion", print_event);
	return ftr_loop_run(&f);


A minuscule C library for drawing on windows and reading mouse and keyboard input.
# print image dimensions
$ tiffu imprintf "%w %h\n" big.tiff
160000 160000

# crop a small portion of the image
$ time tiffu crop 12345 12345 500 big.tiff small.tiff
real    0m0.046s
user    0m0.028s
sys     0m0.016s

# print file sizes
$ du -h *tiff
47.7G  big.tiff
2.0M    small.tiff


Tiny tools for manipulating huge TIFF images.
$ nurse CPU 10 ./a.out
==NURSE== setting MAX CPU = 10 seconds
==NURSE== argv[0] = "./a.out"
==NURSE== DIAG signal 24 (cpu time limit exceeded)


A program to treat other programs with care, allowing them to run with controlled resources.
cat sphere.asc | extract_tree_of_shapes | glshapest


A library for 3D image processing and other things. Currently unmaintained.


I hate blackboards! The ONLY way to do mathematics is by scribbling in the sand.

Fourier and Hilbert Analysis

Undergraduate course taught at the École Normale Supérieure de Cachan in 2014—2015 (in french).

Website of the course.


Mathematical prerequisites for imaging

Two short courses for master students, taught at the École Normale Supérieure de Cachan in 2014—2015 (in french).


Expository material

Some beautiful facts that make me happy: Some expository presentations:


Enric Meinhardt-Llopis
61, avenue du Président Wilson
94235 Cachan, FRANCE

Office: +33(0) 147 40 5907
Mobile: +33(0) 652 457 437

Last updated: 20 Februrary 2016