The image-funcut project is kind of a sandbox or testbed for utilities to
view, analyse and transform two-photon microscopy data or any other series of
images.
At the moment, the project includes the following Python modules:
imfun.atrous: comprises functions for à trous wavelet transform and related utilities. (Synonims: starlet transform, stationary wavelet transform, non-decimated wavelet transform). Besides transform, there are utility functions to smooth input data with B-splines, remove trends in data or enhance data by noise suppression.imfun.bwmorph: helper functions for black-white morphology and binary masksimfun.cluster: naive implementations of a few clustering algorithms and distance functionsimfun.emd: a stub for empirical mode decomposition functionsimfun.filt: various filtersimfun.fnmap: collection of functions which project XYT data to 2D images in various non-trivial waysimfun.fnutils: a few functional programming-inspired utilsimfun.fseq: a keystone module: Class definitions and functions to read from files of several formats and represent sequences of images (both lazy and not) and operations on them.imfun.lib: miscellaneous helper functionsimfun.leica: parsing XML files produced by Leica Software during exportimfun.mes: reading MES files, as created by a Femtonics microscopeimfun.mmt: multiscale median transform and hybrid median/starlet transformimfun.multisale: working with multiscale supports for starlet and median/starlet transforms, including iterative reconstruction from significant coefficientsimfun.mvm: an implementation of the Multiscale Vision Model object detection algorithmimfun.opt: a stub for optimization functionsimfun.pca: unused, example PCAimfun.pica: PCA and ICA implementationsimfun.som: implementation of Self-organizing Kohonen maps clustering algorithmimfun.synthdata: functions to create simple synthetic data sets should be collected hereimfun.tiffile: Tiffile library by Christoph Gohlkeimfun.track: functions to track objects in a changing environment or align frames should be collected hereimfun.ui: Picker class -- a matplotlib-based backend-independent user interface to operate onfseqinstancesimfun.MLFImage: interface to load MLF files produced by Moor laser speckle imaging device.frame_viewer.py: a Traits-based GUI wrapper overimfun.uiand other modules with additional features
One of the motivations to start this project was a functional programming approach to image data analysis, hence the name. Also, it's like a final-cut, but with some (geeky) fun.
The following will load a series of TIFF files with all color channels and start and interface to pick up ROIs, etc.
import imfun
fs = imfun.fseq.open_seq("/path/to/many/tiff/files/*.tif",ch=None)
p = imfun.ui.Picker(fs)
p.start()Documenting all the features is a work in progress...
The project of course relies on the usual core numeric Python packages:
Numpy, SciPy and Matplotlib. It draws some ideas from scikit-learn and
scikit-image, and may in future use these two more. The package also keeps a
copy of tiffile.py by Christoph Gohlke (version 2013.01.18) to load
multi-frame TIFF files.
The script frame_viewer.py, a simple GUI wrapper for imfun, also uses
Traits and TraitsUI.
Except for files, adopted from external sources (such as tiffile.py) the code
is GPL. Other open licensing (e.g. MIT LGPL) can be leased on demand.
The software has been used in production of the following journal articles:
- PMID: 23219568
- PMID: 23211964
- PMID: 24218625
- PMID: 24692513