Sequences with missing frames are not uncommon in the raw images that were collected at soleil. I beleive that these missing frames are caused by the sequence captures that are stopped, resting in missing frames at the end compared to what was planned....
fixes#10
To do this, I turned log messages into debug messages. While doing so, I also added an IJLogger that is able to log messages on imagej console, in case we need it in the future
- the detection is not great at the moment (15 globules detected amongst the 50), because:
1. the parameters are probably not optimal
2. the mask used is incomplete
3. some particules are very difficult to detect anyway
- added documentation
- still need some more work:
1 output the radius of detected particles
2. analyse why detection is not optimal
3. handle weights w_r and w_a
4. filter out radial profiles that are not expected
5. improve the computation of the peakness s_p
v1.02
This was primarily done to detect bad restructuredtext syntax in python code.
This allowed me to detect and fix quite a few errors. In order to fix the orrors in the output document, I also added quite a lot of docstrings, as sphinx autodoc ignores classes and functions that don't have docstrings.
This was my first experience with sphinx but I'm not quite happy with it, as it requires too much verbose and time consuming helps and hinting to produce something decent. Moreobver, it suffers from a lack of examples for non basic usage, such as :
- how to expose to the user the __item__ methods
- how to document multiple return values
- etc.
- the user can now use radial profile image processing through a new plugin (Radial Profile)
- improved the computation of the radial profile : the profile is now normalised (no longer bigger weights for big circles)
- saving results as hdf5 allows easy usage or exploration of results using hdfview or hdfcompass, or by any that supports hdf5 files.
- I had to add support for hdf5 file export, which was more complicate than using h5py library (which is not available in fiji's jython). So instead of using h5py, I wrote a generic hdf5 data structure (not restricted to jython), that can be saved using the jython jhdf5 library.
This will be useful to allow the user to perform some processings on the currently opened stack instead of choosing the stack from a list each time an image processing is launched : this will ease adjustment of image processing parameters.
This allows to now detect if the test succeeds or not. Also turned test_preprocessing into a proper unit test. This test is now much cleaner, as preprocessing.py does no longer require ij related code.
The 2 available plugins are:
- Define Raw Images Root: this plugin allows the user to tell lipase where the raw images are stored
- Estimate White: this plugin allows the user to trigger the computation of a white image estimate for the given sequence and the given channel (the sequence id an the channel ids are currently hardcoded but it is of course planned to make it user selectable)
These changes involved quite a lot of work:
- added the support of a lipase user settings file to store user dependent things such as the location of the lipase raw images (to allow the user to use lipase plugins without having to specify the raw images locations again an again)
- investigations on how to make different lipase plugins use a common lipase library: the library is packagesd into a jar file placed in Fiji/jars/lib, while the plugins (menu items) are placed into Fiji/plugins directory
- investigations on fiji script parameters (for plugins input output)