FluidImage

Latest version Documentation status Code coverage travis

FluidImage is a libre Python framework for scientific processing of large series of images.

Image processing for fluid mechanics is highly dominated by proprietary tools. Such tools are not ideal when you want to understand and tweak the processes and/or to use clusters. With the improvement of the open-source tools for scientific computing and collaborative development, one can think it is possible to build together a good library/toolkit specialized in image processing for fluid mechanics. This is our project with FluidImage.

This package is young but already good enough to be used “in production” to

  • display and pre-process images,

  • compute displacement or velocity fields with Particle Image Velocimetry (PIV, i.e. displacements of pattern obtained by correlations of cropped images) and optical flow,

  • analyze and display PIV fields.

We want to make FluidImage easy (useful documentation, easy installation, usable with scripts and GUI in Qt), reliable (with good unittests) and very efficient, in particular when the number of images to process becomes large. Thus we want FluidImage to be able to run efficiently and easily on a personal computer and on big clusters. The efficiency is achieved by using

  • a framework for asynchronous computations (currently, we use Trio + multiprocessing, and in the long term we want to be able to plug FluidImage to distributed computational systems like Dask, Spark or Storm),

  • the available cores of the central processing units (CPU) and the available graphics processing units (GPU),

  • good profiling and efficient and specialized algorithms,

  • cutting-edge tools for fast computations with Python (in particular Pythran and Theano).

Modules Reference

Here is presented the general organization of the package (see also Overview of the organization of the package) and the documentation of the modules, classes and functions.

fluidimage.topologies

Topologies representing asynchronous computations

fluidimage.executors

Executors of computational topologies

fluidimage.data_objects

Data objects

fluidimage.works

Works - processing

fluidimage.calcul

Utilities for numerical computation

fluidimage.preproc

Preprocessing of images

fluidimage.calibration

Calibrations

fluidimage.reconstruct

Reconstruction algorithms

fluidimage.postproc

Postprocessing

fluidimage.util

Utilities

fluidimage.gui

Graphical user interface

Indices and tables