Commit graph

1124 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
42f00b69a4 Merge remote-tracking branch 'origin/master' into auto-exposure-gain-awb
This was primarily done to disable the warning about f strings in
logging statements, globally rather than per-file.
2021-04-27 17:16:19 +01:00
Richard Bowman
79b0d48cf4 Swap Generator annotation for Iterator 2021-04-27 17:13:40 +01:00
Richard Bowman
a2ba95c1d3 Minor linting improvements
I have now disabled W1203 globally, see comment in
pyproject.toml
2021-04-27 11:17:11 +01:00
Richard Bowman
90f5a755b1 Handle absolute moves correctly
I've changed the default values in MoveStageAPI
so that it correctly handles absolute moves with missing axes.
I've also simplified it so it isn't using axes_to_array as that
resulted in a confusing code path.
2021-04-27 10:55:51 +01:00
Richard Bowman
2eade9ed30 Handle None in axes_to_array
None values should be treated the same as missing ones -
previously it would just crash.
2021-04-27 10:52:52 +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
e86e4d983a Merge branch 'abandon-poetry' into 'master'
Move away from poetry

Closes #218

See merge request openflexure/openflexure-microscope-server!124
2021-04-21 10:57:28 +00: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
Kaspar Emanuel
97bbbdee84 Merge branch 'ihi_scan' into 'master'
IHI scan style raster

See merge request openflexure/openflexure-microscope-server!113
2021-03-30 12:29:32 +00:00
Richard Bowman
af7ef08f63 Move away from poetry
More or less everything is now done by setup.py
Pipfile simply installs the module in editable mode, which
recursively resolves dependencies as defined in setup.py.
2021-03-26 21:11:22 +00: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
1e45640195 Added control to reset LST
You can now recalibrate the LST without running auto-gain.
2021-02-15 20:19:39 +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
36284c10be UI Improvements
I've added buttons to perform the separate calibrations (gain, AWB)
under the full recalibrate link.
It would be really nice to have a modal dialog though.
2021-02-15 19:17:20 +00:00
Richard Bowman
2f6049610f Added controls for AWB gains,
I also increased the precision of the numbers, which makes the step
buttons annoyingly useless but allows floating point
values without validation errors.
2021-02-15 17:50:39 +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
Richard Bowman
2b3c0a9bac Make the origin override persistent
The dev tools pane now remembers the last address you entered in
"override origin" to save a few clicks  when doing local Vue development
2021-02-09 09:46:52 +00:00
Richard Bowman
a9ef605c33 Merge branch 'fix-tour-placement' into 'master'
Fix tour placement

Closes #199

See merge request openflexure/openflexure-microscope-server!114
2021-02-06 15:32:27 +00:00
Richard Bowman
afbb71607d Fix placement of tour messages for icons
The tour pop-ups were getting stuck in the tab icon container.
Explicitly specifying that they could overflow said container,
and setting them to show to the right, seems to have fixed this issue.
2021-02-06 15:32:27 +00:00
Richard Bowman
9c069ef372 Allow MissingStage to be explicitly selected
You can now set the stage type to "MissingStage" in
microscope_configuration.json to stop the server looking for the stage.
A warning is logged to make it obvious what's happening.
2021-02-04 20:31:20 +00:00
Joe Knapper
3d47591cc9 Explicitly state IHI scan style as raster rather than server default 2021-02-03 12:18:57 +00:00
Joel Collins
5232b36644 Test cobertura mypy coverage report 2021-01-08 10:05:31 +00:00
Joel Collins
ef0f74838a Removed unused import 2021-01-07 10:09:43 +00:00
Joel Collins
e8560a1d5d Removed unused ERROR_SOURCES 2021-01-06 17:31:58 +00:00
Joel Collins
61554af270 Restructured camera rescue 2021-01-06 17:31:45 +00:00
Joel Collins
3501a5b624 Merge branch 'picamera-rescue' into 'master'
Picamerax error recovery

See merge request openflexure/openflexure-microscope-server!86
2021-01-05 17:11:03 +00:00
Joel Collins
f877c4f745 Added Spiral scan to standard options 2021-01-05 14:30:49 +00:00
Joel Collins
0592d31b22 Fix #194 2020-12-14 15:00:37 +00:00
Joel Collins
18956bf230 Update README.md 2020-12-09 16:04:23 +00:00
Joel Collins
68380385cb Watch for broken frames using JPEG end bytes, and log error 2020-12-08 18:07:05 +00:00
Joel Collins
d2488c566a Added more Advanced bitrate controls 2020-12-08 17:57:42 +00:00
Joel Collins
0626b13bfd Formatting 2020-12-07 17:08:47 +00:00
Joel Collins
42e0dfd39c Replaced MJPEG quality setting with MJPEG bitrate 2020-12-07 17:05:56 +00:00
Joel Collins
3e2f876627 Added mjpeg bitrate to settings 2020-12-07 16:49:00 +00:00
Joel Collins
9659c45bb4 Fixed SangaDeltaStage type annotations 2020-12-07 12:44:34 +00:00
Joel Collins
c75a7c5401 Lockfile update 2020-12-07 11:13:35 +00:00
Joel Collins
9d04842c56 Handle missing this.$refs.textboxKey ref 2020-12-07 11:12:07 +00:00
Joel Collins
599c31534d globalUpdateCaptures after scan 2020-12-07 10:37:04 +00:00