feature extraction and analysis pipeline for image data
Spotlob is a package to provide a simple, yet flexible and fast workflow to measure properties of features in images for scientific purposes.
It provides implementations for some use cases but can be easily tuned and be extended towards specific purposes. Jupyter notebook widgets can be used to quickly find a set of algorithms and parameters that work for a given image and should also work for similar images.
The set of parameters and algorithms are stored as a pipeline which can be restored and distributed and then be applied to a possibly large set of images. This way, standard routines for repetitive and comparable measurements for a defined type of images can be forged into a small and portable file.
When it's helpful
It is meant to be used in a scenario where a detection method has to be applied repetetively onto a large set of similar images, but the exact parameters are not clear. If your set of tasks can be done by a collection of opencv-function calls, that need tweaking and you wish to have a GUI to do that, but without to lose scripting options, spotlob is for you.
If you already have a couple of working python algorithms and want to have a GUI for them to play around, use spotlob.
If you need to evaluate some images and you don't know which of the thousand parameters of an algorithm you found on google work best, you might be able to find the right ones faster with spotlob.
from spotlob.spim import Spim from spotlob.defaults import default_pipeline() my_spim = Spim.from_file("image.jpg", cached=True) my_pipe = default_pipeline() result_spim = my_pipe.apply_all_steps(my_spim) print(result_spim.get_data())
What it's not
Spotlob is not a complete feature detection library and it does not solve a detection problem, that has not already been solved elsewhere. It is not an alternative to opencv or scikit-image, but rather builds on top of it. At the moment it covers only a tiny fraction of what is possible with these libraries, but it tries to make it easy for the reader to use these (or any other python image processing library) within the spotlob workflow.
Although it might work with machine learning algorithms, it is not tuned towards this usage and it is not designed with this application in mind.
Install with pip
pip install spotlob