Camera calibration buttons specified by server. Simulation has option to remove sample
This commit is contained in:
parent
1e89ef0ff7
commit
0794d4777f
5 changed files with 175 additions and 79 deletions
|
|
@ -35,6 +35,7 @@ from picamera2.outputs import Output
|
|||
import labthings_fastapi as lt
|
||||
from labthings_fastapi.exceptions import NotConnectedToServerError
|
||||
|
||||
from openflexure_microscope_server.ui import ActionButton, action_button_for
|
||||
from . import picamera_recalibrate_utils as recalibrate_utils
|
||||
from . import BaseCamera, JPEGBlob, ArrayModel
|
||||
|
||||
|
|
@ -777,6 +778,59 @@ class StreamingPiCamera2(BaseCamera):
|
|||
)
|
||||
self._initialise_picamera()
|
||||
|
||||
@lt.thing_property
|
||||
def primary_calibration_actions(self) -> list[ActionButton]:
|
||||
"""The calibration actions for both calibration wizard and settings panel."""
|
||||
return [
|
||||
action_button_for(
|
||||
self.full_auto_calibrate,
|
||||
submit_label="Full Auto-Calibrate",
|
||||
can_terminate=False,
|
||||
requires_confirmation=True,
|
||||
confirmation_message=(
|
||||
"Start recalibration? This may take a while, and the microscope "
|
||||
"will be locked during this time."
|
||||
),
|
||||
),
|
||||
action_button_for(
|
||||
self.auto_expose_from_minimum,
|
||||
submit_label="Auto Gain & Shutter Speed",
|
||||
can_terminate=False,
|
||||
),
|
||||
action_button_for(
|
||||
self.calibrate_white_balance,
|
||||
submit_label="Auto White Balance",
|
||||
can_terminate=False,
|
||||
),
|
||||
action_button_for(
|
||||
self.calibrate_lens_shading,
|
||||
submit_label="Auto Flat Field Correction",
|
||||
can_terminate=False,
|
||||
requires_confirmation=True,
|
||||
confirmation_message=(
|
||||
"Is the microscope looking at an evenly illuminated, empty field "
|
||||
"of view? If not, the current image will show through in any "
|
||||
"images captured afterwards."
|
||||
),
|
||||
),
|
||||
]
|
||||
|
||||
@lt.thing_property
|
||||
def secondary_calibration_actions(self) -> list[ActionButton]:
|
||||
"""The calibration actions that appear only in settings panel."""
|
||||
return [
|
||||
action_button_for(
|
||||
self.flat_lens_shading,
|
||||
submit_label="Disable Flat Field Correction",
|
||||
can_terminate=False,
|
||||
),
|
||||
action_button_for(
|
||||
self.reset_lens_shading,
|
||||
submit_label="Reset Flat Field Correction",
|
||||
can_terminate=False,
|
||||
),
|
||||
]
|
||||
|
||||
@lt.thing_property
|
||||
def lens_shading_tables(self) -> Optional[LensShading]:
|
||||
"""The current lens shading (i.e. flat-field correction).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue