Commit Graph

56 Commits

Author SHA1 Message Date
Guillaume Raffy 4932427663 display sequence will now allow the loading of sequences with missing frames
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
2022-01-26 22:25:42 +01:00
Guillaume Raffy 2acff0f175 display sequence now presents the list of sequences in a sorted way 2022-01-26 18:47:33 +01:00
Guillaume Raffy 6882b4af35 display sequence now gives a title to the images it opens.
This make it easier to select images in combo boxes
2022-01-26 18:11:17 +01:00
Guillaume Raffy d5f948d304 the channel chooser of `Display Sequence` plugin is now properly populated at startup
fixes #9
2022-01-25 17:11:27 +01:00
Guillaume Raffy 5b107236c9 Handle the case where the user selects a Pos<n> directory as raw image root
- although a Pos<n> directory as raw image root is disputable, before this fix, an assert failed which was not very nice...
2022-01-25 16:16:31 +01:00
Guillaume Raffy ebcfb1747f raw images root path now supports directory paths that contain non ascii characters 2022-01-25 15:40:53 +01:00
Guillaume Raffy 442645d710 prevented the console window to appear and diaply messages that are irrelevant to users.
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
2022-01-25 14:53:37 +01:00
Guillaume Raffy dbc22ea3b1 Display Sequence now displays an informative messagebox inseatd of crashing when the list of sequence is empty
fixes #7
2022-01-25 12:33:09 +01:00
Guillaume Raffy f686d89204 imagej's headless regression no longer causes tests to fail (as these failures only happen in headless mode, see issue #6)
also added a logging mechanism to reduce stdout pollution (printing to stdout doesn't play nicely with python's unittest mechanism)
2022-01-25 07:44:23 +01:00
Guillaume Raffy 4dba5a99af now Compute_Globules_Area displays the images of detected particles
- this allows the user to check if the image processing settings are correct
- fixes #5
2021-11-22 14:20:58 +01:00
Guillaume Raffy 71b1ed5b8b added image processing listener utilities
copied from https://subversion.ipr.univ-rennes1.fr/repos/main/projects/libraries/python but they will need admting though
2021-11-19 18:04:30 +01:00
Guillaume Raffy 110aa17dbb attempted to fix a bug in mkdir_p that fails on jenkins 2020-11-24 14:26:44 +01:00
Guillaume Raffy ae6de7ffef preprocess_sequence plugin : added the ablilty to smooth the dark image to avoid infinite pixel values in the result
infinite pixel values happen when a pixel in the dark image has the same value as its counterpart in the white image (in a dark area, this can happen)
2020-11-24 13:57:45 +01:00
Guillaume Raffy e397e3aa0f added a preprocess sequence plugin
This was requested by Claire Bourlieu to ease the preprocessing.  This preprocessing could easily be done manuelly with Fiji but a bit tedious...
2020-11-04 19:37:14 +01:00
Guillaume Raffy 4836bc5f7a fixed bug introduced in my last commit : the number of frames of a sequence was alwys 0 when no frame was missing 2020-06-23 16:18:35 +02:00
Guillaume Raffy 52dbaeeb4f handle the case where the recording has been cancelled by the user and therefore the actual number of frames is lower than initially planned 2020-06-23 15:57:21 +02:00
Guillaume Raffy ad18e2e451 more work on graffy/lipase#3 : added a plugin to detect globules based on circular symmetry.
-  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
2020-04-17 19:30:48 +02:00
Guillaume Raffy 97dc74f08c configured sphinx to generate decent api documentation
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.
2020-04-14 18:58:03 +02:00
Guillaume Raffy bfca19e039 more work related to graffy/lipase#3: for each pixel, the profile of variance along the circle is now computed. This image basically measures the non-roundedness for each pixel. 2020-04-08 13:38:16 +02:00
Guillaume Raffy c42972736f fixed bug that caused IJHyperstack.getimage to be able to modify the hyperstack instance 2020-04-08 12:43:10 +02:00
Guillaume Raffy 608fefce0a more work towards graffy/lipase#3 : replaced circle kernels with circle arc kernels, as circle arcs are needed to compute the variance of the image along the circles. Note that at the moment the code doesn't yet compute the variance.
This commit is not intended to change the radial profile image.
2020-04-07 14:15:54 +02:00
Guillaume Raffy f0a624fc2b more work related to graffy/lipase#3
- 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)
2020-04-06 18:49:29 +02:00
Guillaume Raffy 4daf2bfe91 now there is an image processing to compute the radial profile (needed for graffy/lipase#3). 2020-04-06 16:35:28 +02:00
Guillaume Raffy e8b1e331fe added a function that creates an image containing a circle
this function will be used for to complete #3
2020-04-02 15:52:43 +02:00
Guillaume Raffy e3ab3b6140 v1.01 : added the "Ipr/Lipase/Compute Globules Area" plugin
fixes #2
2020-03-27 16:49:21 +01:00
Guillaume Raffy 693b8de376 attempt to make file paths also work in windows
fixes #1
2020-03-24 19:41:06 +01:00
Guillaume Raffy 22c112a18d now the globules area estimator's results are stored as hdf5 files
- 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.
2020-03-20 14:36:21 +01:00
Guillaume Raffy 8f6d1188e5 added a a method that estimates the global area of globules over time 2020-03-18 16:33:14 +01:00
Guillaume Raffy 3c8f14f34b fixed bug that caused the plugin Estimate_White to be broken since 14/02/2020 2020-03-12 17:37:27 +01:00
Guillaume Raffy ac93fb411f now the catalog automatically searches the sequences in the source inmage directory provided by the user 2020-03-11 16:14:22 +01:00
Guillaume Raffy ded2856619 added a debugging mechansism so that debug images can now be turned on or off 2020-02-14 18:28:34 +01:00
Guillaume Raffy 1ae9821a6e renamed preprocessing.py as telemos.py because it contains functions that have been translated from matlab telemos toolbox 2020-02-14 11:32:46 +01:00
Guillaume Raffy df1a9b869f refactoring: renamed width() into get_width() to avoid confusion with properties 2020-02-13 14:34:32 +01:00
Guillaume Raffy 777db445be compute_traps_mask now returns a traps mask, as expected
- to do this I had to split test_template_matcher into 2 unit tests (one of them being  a unit test just for template matching)
2020-02-06 15:30:36 +01:00
Guillaume Raffy 9ce4823e7a improved trap binarizer : it now uses a manual threshold value to allow the user to adjust it.
As a result, both sides of the trap are now detected
2020-02-05 12:45:16 +01:00
Guillaume Raffy b4458c0697 added the processing that computes the traps mask from the clean trap image
Bug 2804 - Faire un traitement qui détecte les pièges
2020-02-04 18:00:54 +01:00
Guillaume Raffy 1702d97965 now a clean trap image is computed as the median value of all traps 2020-01-30 16:44:11 +01:00
Guillaume Raffy dcf5d61f3d refactored traps detector into 3 different classes and cleaned up 2020-01-29 18:19:01 +01:00
Guillaume Raffy 224234c3e7 added code to detect the traps
This processing will be needed to compute the traps mask
This code needs to be cleaned
2020-01-29 12:11:43 +01:00
Guillaume Raffy 6e165b8fc6 removed unnecessary comments 2019-10-09 17:43:03 +02:00
Guillaume Raffy 7973cfc3ec The Estimate White plugin now takes the selected stack as input instead of asking the user the sequence
This makes Estimate White plugin's UI more in line with imagej's plugin conventions.
2019-10-09 17:42:32 +02:00
Guillaume Raffy 44dacc1a97 The user can now display just a specific channel of a sequence
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.
2019-10-09 14:36:09 +02:00
Guillaume Raffy 738a3a8c25 the user can now choose parameters when performing white estimate 2019-10-08 17:54:00 +02:00
Guillaume Raffy f7ad17f9e8 added a function to remove lighting non uniformity 2019-10-08 16:40:39 +02:00
Guillaume Raffy 0b4bb9b608 removed unused imports 2019-10-08 16:38:50 +02:00
Guillaume Raffy 41c9263f81 fixed bug that caused test0001.bash to fail 2019-10-01 12:37:57 +02:00
Guillaume Raffy fe389f7897 Fixed bug : now test0001.bash fails if the python script fails.
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.
2019-10-01 12:25:15 +02:00
Guillaume Raffy e8f23bb445 added a plugin that allows the user to display his chosen sequence in imagej 2019-09-27 14:20:00 +02:00
Guillaume Raffy d71793ad9c Added the ability of the user to choose the channel for which he wants to compute the white estimate.
As a result the Estimate White plugin is now usable.
2019-09-26 15:11:59 +02:00
Guillaume Raffy e6217b38a3 Added 2 menu plugins that allow the user to interactively use lipase
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)
2019-09-26 10:25:02 +02:00