class JPEGSharpnessMonitor: (source)
Constructor: JPEGSharpnessMonitor(stage, camera, method, record)
A class with direct access to the CameraThing for monitoring the MJPEG stream.
The autofocus algorithm uses sharpness calculated from the file size of the images in the MJPEG stream. This class monitors both the stage position and the jpeg sharpness over time.
The run context manager is used to start monitoring the camera stream. Position monitoring happens during focus_rel. Raw data can be retrieved with data_dict and data with interpolated z positions can be retrieved with move_data.
| Method | __enter__ |
Start context manager, during which sharpness from the camera is monitored. |
| Method | __exit__ |
Clean up after context manager is closed. |
| Method | __init__ |
Initialise a new JPEGSharpnessMonitor. The args are injected automatically. |
| Method | data |
Return the gathered data as dict. |
| Method | data |
Return the gathered data as SharpnessDataArrays. |
| Method | focus |
Move the stage by dz, monitoring the position over time. |
| Async Method | monitor |
Start monitoring sharpness metrics. |
| Method | move |
Extract sharpness as a function of (interpolated) z. |
| Method | sharpest |
Return the z position of the sharpest image on a given move. |
| Instance Variable | camera |
Undocumented |
| Instance Variable | method |
Undocumented |
| Instance Variable | record |
Undocumented |
| Instance Variable | running |
Undocumented |
| Instance Variable | stage |
Undocumented |
| Property | focus |
The recorded FocusFoM values. |
| Property | jpeg |
The recorded JPEG frame sizes used as a sharpness metric. |
| Property | jpeg |
The timestamps recorded for captured JPEG frames. |
| Property | stage |
The positions recorded for the stage. |
| Property | stage |
The timestamps recorded for stage position updates. |
| Instance Variable | _focus |
Undocumented |
| Instance Variable | _jpeg |
Undocumented |
| Instance Variable | _jpeg |
Undocumented |
| Instance Variable | _stage |
Undocumented |
| Instance Variable | _stage |
Undocumented |
type[ BaseException], _exc_value: BaseException | None, _traceback: TracebackType | None):
(source)
¶
Clean up after context manager is closed.
BaseStage, camera: BaseCamera, method: SharpnessMethod = SharpnessMethod.JPEG, record: int | None = None):
(source)
¶
Initialise a new JPEGSharpnessMonitor. The args are injected automatically.
| Parameters | |
stage:BaseStage | A direct_thing_client dependency for the the microscope stage. |
camera:BaseCamera | A raw_thing_client depeendency for the camera. This is a raw dependency as required by the underlying class. |
method:SharpnessMethod | The sharpness metric used when evaluating autofocus. |
record:int | None | Bitmask of sharpness metrics to record while monitoring. If None or 0, only the metric specified by method is recorded. |
| Raises | |
ValueError | If method is not included in record. |
ValueError | If SharpnessMethod.FOCUS_FOM is requested but the camera does not support FocusFoM measurements. |
Move the stage by dz, monitoring the position over time.
This performs exactly one move. Multiple calls of this method will append to the internal position storage for more complex autofocus procedures.
This should be run from within the JPEGSharpnessMonitor.run context manager so that sharpness data and timestamps are also collected.
int, istop: int | None = None) -> tuple[ np.ndarray, np.ndarray, np.ndarray]:
(source)
¶
Extract sharpness as a function of (interpolated) z.
The recorded JPEG frame sizes used as a sharpness metric.
| Raises | |
ValueError | If JPEG sharpness recording is not enabled. |