Coverage for characterisation/cameras.py: 7%
15 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-16 22:49 +1300
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-16 22:49 +1300
1"""
2Cameras Sensitivities
3=====================
5Define spectral distribution classes for camera sensor characterisation
6datasets from the :mod:`colour.characterisation.datasets.cameras` module.
8- :class:`colour.characterisation.RGB_CameraSensitivities`: Define support
9 for camera *RGB* sensitivities.
10"""
12from __future__ import annotations
14import typing
16from colour.colorimetry import (
17 MultiSpectralDistributions,
18 SpectralDistribution,
19 SpectralShape,
20)
22if typing.TYPE_CHECKING:
23 from collections.abc import KeysView, ValuesView
24 from colour.continuous import MultiSignals, Signal
25 from colour.hints import (
26 Any,
27 ArrayLike,
28 Sequence,
29 )
31from colour.utilities import is_pandas_installed
33if typing.TYPE_CHECKING or is_pandas_installed():
34 from pandas import DataFrame, Series # pragma: no cover
35else: # pragma: no cover
36 from unittest import mock
38 DataFrame = mock.MagicMock()
39 Series = mock.MagicMock()
41__author__ = "Colour Developers"
42__copyright__ = "Copyright 2013 Colour Developers"
43__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
44__maintainer__ = "Colour Developers"
45__email__ = "colour-developers@colour-science.org"
46__status__ = "Production"
48__all__ = [
49 "RGB_CameraSensitivities",
50]
53class RGB_CameraSensitivities(MultiSpectralDistributions):
54 """
55 Define a container for camera *RGB* spectral sensitivities.
57 Parameters
58 ----------
59 data
60 Data to be stored in the multi-spectral distributions.
61 domain
62 Values to initialise the multiple
63 :class:`colour.SpectralDistribution` class instances
64 :attr:`colour.continuous.Signal.wavelengths` attribute with. If
65 both ``data`` and ``domain`` arguments are defined, the latter will
66 be used to initialise the
67 :attr:`colour.continuous.Signal.wavelengths` property.
68 labels
69 Names to use for the :class:`colour.SpectralDistribution` class
70 instances.
72 Other Parameters
73 ----------------
74 extrapolator
75 Extrapolator class type to use as extrapolating function for the
76 :class:`colour.SpectralDistribution` class instances.
77 extrapolator_kwargs
78 Arguments to use when instantiating the extrapolating function of
79 the :class:`colour.SpectralDistribution` class instances.
80 interpolator
81 Interpolator class type to use as interpolating function for the
82 :class:`colour.SpectralDistribution` class instances.
83 interpolator_kwargs
84 Arguments to use when instantiating the interpolating function of
85 the :class:`colour.SpectralDistribution` class instances.
86 name
87 Multi-spectral distributions name.
88 display_labels
89 Multi-spectral distributions labels for figures, default to
90 :attr:`colour.colorimetry.RGB_CameraSensitivities.labels` property
91 value.
92 """
94 def __init__(
95 self,
96 data: (
97 ArrayLike
98 | DataFrame
99 | dict
100 | MultiSignals
101 | MultiSpectralDistributions
102 | Sequence
103 | Series
104 | Signal
105 | SpectralDistribution
106 | ValuesView
107 | None
108 ) = None,
109 domain: ArrayLike | SpectralShape | KeysView | None = None,
110 labels: Sequence | None = None, # noqa: ARG002
111 **kwargs: Any,
112 ) -> None:
113 super().__init__(data, domain, labels=("red", "green", "blue"), **kwargs)