Commit graph

149 commits

Author SHA1 Message Date
Richard Bowman
87f636ecc0 Code format and linting 2021-04-27 19:56:54 +01:00
Richard Bowman
bb303d4766 Simplified auto gain/exposure algorithm
adjust_shutter_and_gain_from_raw now uses a simpler algorithm.
The code is longer overall but hides some details in fuctions.
I've also split the loop into one for shutter speed and one for gain.
This isn't the algorithm that I originally wrote, but it seems to
work and is more readable.
2021-04-27 18:54:21 +01:00
Richard Bowman
79b0d48cf4 Swap Generator annotation for Iterator 2021-04-27 17:13:40 +01:00
Richard Bowman
88de3089ea Fixed linter errors 2021-04-21 13:38:14 +01:00
Richard Bowman
8c50f73b34 Fixed type of context manager 2021-04-21 12:54:53 +01:00
Richard Bowman
fd32c22e30 Fixed formatting 2021-04-21 12:40:10 +01:00
Richard Bowman
1f1a75c02a Merge branch 'master' into auto-exposure-gain-awb 2021-04-21 12:10:47 +01:00
Richard Bowman
1cea75be70 Formatting fixes 2021-03-31 09:40:31 +01:00
Richard Bowman
e73ee8875c Fixed type annotations in autofocus and mock stage
I don't know why these didn't fail before - possibly because of
incomplete type information from old numpy...
I removed a few annotations because they were failing (e.g.
np.sum can return a scalar or an array), but I don't think
this should be a problem - the function inputs and return values
are still typed.
2021-03-30 17:51:00 +01:00
Richard Bowman
cd5e32b843 Removed deprecated np.float
numpy 1.20 deprecates np.float, which was only ever an alias for
``float``.  I've replaced all occurrences of np.float with float, as
recommended.  There should be no change in functionality.
2021-03-30 17:40:19 +01:00
Richard Bowman
a373afd955 swap print for logging in old function 2021-03-16 11:01:57 +00:00
Richard Bowman
3b435ab2ee Deleted obsolete functions 2021-02-18 15:56:11 +00:00
Richard Bowman
b06dd187ec Fixed args in endpoints 2021-02-15 20:18:34 +00:00
Richard Bowman
069d27bf15 Lock access to picamera
The picamera object isn't thread safe; I have now wrapped all access
in context managers that acquire the BaseCamera.lock

I also added an endpoint to reset the LST without auto-gain.
2021-02-15 20:15:55 +00:00
Richard Bowman
a9709b14ea Added locking to recalibrate functions
When testing the UI I noticed that the different recalibrate routines
don't use locks properly, so they try to run
concurrently.

This commit isn't tested yet...
2021-02-15 19:21:27 +00:00
Richard Bowman
0f1a400979 Fixed type hint 2021-02-15 17:04:44 +00:00
Richard Bowman
4c27d88b37 Fixed description and linted 2021-02-11 15:54:58 +00:00
Richard Bowman
5527c4eb7b Fix auto-exposure and AWB
The previous "auto calibrate" button for the camera relied on a
combination of the built-in autoexposure/AWB and
some JPEG-based tweaks to get the exposure settings right.
This often led to confusing results, e.g. oscillating between green and
 pink images.

 I have rewritten the auto-exposure code to adjust gain and shutter
 speed based on the raw image.  This seems to be
 very reliable, at the expense of being quite slow.  That's a price I'm
 happy to pay.

 I have replaced both the camera's auto white balance and my
 JPEG-based AWB hack with a single-shot AWB method that
 looks at the raw image.
2021-02-11 14:30:20 +00:00
Joel Collins
58b2967f53 Fixed autofocus 'PiCameraStreamer' object has no attribute 'annotate_text' error 2020-12-07 10:12:30 +00:00
Joel Collins
311366c943 Added type hints to CSM extension 2020-12-04 17:05:40 +00:00
Joel Collins
920354537a Integrated CSMExtension 2020-12-04 16:05:39 +00:00
Joel Collins
7ba3f447e1 Added extra type hints 2020-12-04 15:23:03 +00:00
Joel Collins
63b633ba44 2.9 dev numpy types 2020-12-04 13:35:11 +00:00
Joel Collins
37f92b6cce Linting fixes 2020-11-30 17:17:14 +00:00
Joel Collins
b8354d3e8e Added type information to LABTHINGS_EXTENSIONS 2020-11-30 17:11:30 +00:00
Joel Collins
d28848412c Fixed get_locations method reference 2020-11-30 16:59:56 +00:00
Joel Collins
18a0eedd5e Fixed tile method reference 2020-11-30 16:57:54 +00:00
Joel Collins
8d0759e9e0 Updated default extensions to subclass structure 2020-11-30 16:41:39 +00:00
Joel Collins
7866ec0f47 Static type analysis 2020-11-30 13:36:45 +00:00
Joel Collins
b2192b2190 Fixed unused imports 2020-11-25 15:32:08 +00:00
Joel Collins
5137d1b9dc Added basic unit tests of non-integrated functions 2020-11-25 15:25:17 +00:00
Joel Collins
3451b8a8a5 Added full TileScanArgs schema 2020-11-12 16:56:28 +00:00
Joel Collins
6fb61e1e3f Reverted logging style 2020-11-12 15:45:58 +00:00
Joel Collins
9f5252194a Updated all log strings to new format 2020-11-12 15:12:17 +00:00
Joel Collins
b350f62013 Removed old JSONResponse class 2020-11-12 13:50:48 +00:00
Joel Collins
da490fdfcd Separated move_and_measure locks 2020-10-28 15:40:29 +00:00
Joel Collins
601e51d9b9 Code formatting 2020-10-26 14:58:09 +00:00
Joel Collins
ef4e825b9c Merge branch 'temporary' into 'master'
Added a spiral scan option

See merge request openflexure/openflexure-microscope-server!75
2020-10-26 14:54:23 +00:00
Joel Collins
459a8dc2a3 Reset tracker frames after each mode 2020-10-26 13:36:36 +00:00
Joel Collins
574f4a615d Fast AF use normal stream 2020-10-26 13:16:58 +00:00
Joel Collins
3c63d6a240 Overhauled autofocus tracker 2020-10-22 16:00:52 +01:00
Joel Collins
cd8145c198 Isort 2020-10-22 15:59:19 +01:00
Joel Collins
355b3cd8f2 Fixed argument parsing in PreferredLocationGUIView 2020-10-21 11:40:03 +01:00
Joel Collins
1677f0df76 Blackened 2020-10-19 18:34:58 +01:00
Joel Collins
4ae39db402 Revert scan to use old fast autofocus 2020-10-19 18:20:40 +01:00
Joel Collins
51ff132633 Refactored fast_autofocus 2020-10-19 18:17:29 +01:00
Joel Collins
2186bf7aaa Add /updownup_autofocus view 2020-10-19 17:59:54 +01:00
Joel Collins
4ceb6bcafe Separate "classic" fast AF from up-down-up AF 2020-10-19 17:59:07 +01:00
Joel Collins
9310deeeff Fixed pylint line ignores 2020-10-16 09:35:41 +00:00
Joel Collins
994e83dbeb Code cleanup 2020-10-14 14:56:29 +00:00