Source code for QVideo.cameras.Flir._camera
from QVideo.cameras.Genicam import QGenicamCamera, QGenicamSource
__all__ = ['QFlirCamera', 'QFlirSource']
[docs]
class QFlirCamera(QGenicamCamera):
'''Camera backed by a FLIR device via the Spinnaker GenTL producer.
`Spinnaker <https://www.flir.com/products/spinnaker-sdk/>`_ is FLIR's
SDK for machine-vision cameras. It installs a GenTL producer whose
path is discovered automatically from the ``GENICAM_GENTL64_PATH``
environment variable set by the Spinnaker installer.
If Spinnaker is not installed, instantiation raises :exc:`TypeError`.
.. warning::
Spinnaker GenTL producer **4.3.0.189** contains a bug in which
``DevClose()`` hangs indefinitely when the camera is released.
This causes the application to hang on exit. FLIR customer
support has confirmed the bug. If you experience this issue,
downgrade to Spinnaker **4.1.0.172** or earlier.
Parameters
----------
cameraID : int
Index of the FLIR camera to open. Default: ``0``.
'''
_producer_filenames = ('Spinnaker_GenTL.cti',)
[docs]
class QFlirSource(QGenicamSource):
'''Threaded video source backed by :class:`QFlirCamera`.
Parameters
----------
camera : QFlirCamera or None
Camera instance to wrap. If ``None``, a new
:class:`QFlirCamera` is created from ``cameraID``.
cameraID : int
Index of the camera to open. Used only when *camera* is ``None``.
Default: ``0``.
'''
def __init__(self, camera: QFlirCamera | None = None,
cameraID: int = 0) -> None:
camera = camera or QFlirCamera(cameraID=cameraID)
super().__init__(camera)
if __name__ == '__main__': # pragma: no cover
QFlirCamera.example()