slmsuite.hardware.cameras
The sensor arrays used to measure results.
Computer vision hardware is connected to python by a myriad of SDKs, often provided by hardware
vendors. However, these SDKs likewise have a myriad of function names and hardware-specific
quirks. Thus, cameras in slmsuite
are integrated as subclasses of
the abstract class Camera
, which requires subclasses to implement a number of methods
relevant for SLM feedback (see below).
These subclasses are effectively wrappers for the given SDK, but also include
quality-of-life features such as image transformations (flips, rotates) and useful common methods.
A number of SDKs are supported, including:
AlliedVision
, for AlliedVision cameras, throughvimba
(GitHub),
Cheetah640
, for Xenics Cheetah cameras, through the Xenics SDK,
FLIR
, for Teledyne FLIR cameras, through thePySpin
interface of the Spinnaker SDK,
MMCore
, for the general microscope control package Micro-Manager, throughpymmcore
(GitHub), and
ThorCam
, for Thorlabs scientific cameras, throughthorlabs_tsi_sdk
and the ThorCam SDK.
Tip
While the superclass Camera
only requires a small number of features to
be implemented as class functions, any further control of a camera interface can be
accessed by using the given SDK object directly (usually the attribute cam
of
the subclass) or writing additional functions into the subclass.
Hardware control for AlliedVision cameras via the |
|
Abstract camera functionality. |
|
(NotImplemented) Hardware control for FLIR cameras via the |
|
(NotImplemented) Hardware control for Micro-Manager cameras via the |
|
Template for writing a subclass for camera hardware control in |
|
Hardware control for Thorlabs cameras via |
|
Hardware control for Xenics camera via the |