Skip to content
/ ImageP Public

ImageP is a bunch of image processing algorithms I have written for myself first, but use in scientific image processing. All are meant to accurate work. And to avoid using a full scikit-image for simple work.

Notifications You must be signed in to change notification settings

tomio13/ImageP

Repository files navigation

This collection of algorithm is an implementation of particle tracking related
image processing. The work is based on the publications of prof. Grier, and
various internet resources of the code available for IDL and Matlab.

The whole thing was originally based on scipy and numpy, and also using pylab
as a plotting resource.

Some of these functions may be obsolete a bit, but others I find rather
useful. Each function has its documentation in the code, please have a look.

Lincense: as of 2024 May I put it under CC(4)-BY license, see:
https://creativecommons.org/licenses/by/4.0/

Installation:
old way:
    python setup.py build

    and as root:
    python setup.py install

now:
    pip install ImageP....whl
compiling:
    python setup.py bdist_wheel

New way:
    python -m build

Install (e.g. ImageP...whl)
    pip install dist/ImageP....whl

Dependencies:
    numpy, matplotlib, image (PIL)

    * the numpy should be fresh enough to use the new histogram function
    * now the plotting uses matplotlib.pyplot (it used to use the pylab, but
      that is a bit overkill now)
    * from the PIL it uses the open functionality to read images in the
      read_img()

Functionality include:
 * a image reader based on PIL
 * a bit extended histogram (hist)
 * a graythresh algorithm
 * a bwlabel and bwfloodlist

 Filters:
 * an FFT based convolution with padding
 * a simple 'convolution' point-by-point for small kernels (<10 pixels across)
 * both of these filters using a 1D kernel (for 2D kernels which can be
    composed from 1D kernel with an outer product)
 * a Gaussian deblurr filter for fluorescence images
 * Manders and Pearson image correlation (used in fluorescence microscopy)

 Kernels:
 * Boxcar kernel (1D or 2D)
 * a 1D or 2D Gaussian kernel
 * binomial kernel
 * Soebel kernel (3, 5, 7 or 9 points)
 * Rotating Gaussian (with 1st and 2nd derivative)

 Others:
 * a universal (and slow) despiking routine
 * bwanalyze for some simple parameter determination of simple shapes -
   usually generated by bwlabel
 * PeakFind a simple peak finder with pixel precision, PeakPos refines these
   hits to subpixel precision - like in the Grier article
 * PeakPos: to refine the peak positions
 * ParticleTrack to sort out position lists containing results of PeakPos
 * display() an image display envelop to matplotlib.pyplot

Some of the funcitons can work faster if implemented in C. These are written
in C and in python, and the module checks if it can pick the C version first,
and falls back to the python if necessary.

Have fun!

About

ImageP is a bunch of image processing algorithms I have written for myself first, but use in scientific image processing. All are meant to accurate work. And to avoid using a full scikit-image for simple work.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published