Esempio n. 1
0
    """

    F_D = as_float_array(F_D)

    return oetf_reverse_BT709(eotf_reverse_BT1886(F_D / 100)) / 59.5208


BT2100_HLG_WEIGHTS = np.array([0.2627, 0.6780, 0.0593])
"""
Luminance weights for *Recommendation ITU-R BT.2100* *Reference HLG*.

BT2100_HLG_WEIGHTS : ndarray
"""

BT2100_HLG_CONSTANTS = Structure(
    a=ARIBSTDB67_CONSTANTS.a,
    b=1 - 4 * ARIBSTDB67_CONSTANTS.a,
    c=0.5 - ARIBSTDB67_CONSTANTS.a * np.log(4 * ARIBSTDB67_CONSTANTS.a))
"""
*Recommendation ITU-R BT.2100* *Reference HLG* constants expressed in their
analytical form in contrast to the *ARIB STD-B67 (Hybrid Log-Gamma)* numerical
reference.

Those constants are not currently in use and are provided as a reference only.

References
----------
:cite:`InternationalTelecommunicationUnion2016a`

BT2100_HLG_CONSTANTS : Structure
"""
Esempio n. 2
0
    def __init__(
        self,
        path: Optional[str] = None,
        header: Optional[Header_IESTM2714] = None,
        spectral_quantity: Optional[Literal["absorptance", "exitance", "flux",
                                            "intensity", "irradiance",
                                            "radiance", "reflectance",
                                            "relative", "transmittance",
                                            "R-Factor", "T-Factor",
                                            "other", ]] = None,
        reflection_geometry: Optional[Literal["di:8", "de:8", "8:di", "8:de",
                                              "d:d", "d:0", "45a:0", "45c:0",
                                              "0:45a", "45x:0", "0:45x",
                                              "other", ]] = None,
        transmission_geometry: Optional[Literal["0:0", "di:0", "de:0", "0:di",
                                                "0:de", "d:d",
                                                "other"]] = None,
        bandwidth_FWHM: Optional[Floating] = None,
        bandwidth_corrected: Optional[Boolean] = None,
        **kwargs,
    ):

        super().__init__(**kwargs)

        self._mapping: Structure = Structure(
            **{
                "element":
                "SpectralDistribution",
                "elements": (
                    Element_Specification_IESTM2714("SpectralQuantity",
                                                    "spectral_quantity",
                                                    required=True),
                    Element_Specification_IESTM2714("ReflectionGeometry",
                                                    "reflection_geometry"),
                    Element_Specification_IESTM2714("TransmissionGeometry",
                                                    "transmission_geometry"),
                    Element_Specification_IESTM2714(
                        "BandwidthFWHM",
                        "bandwidth_FWHM",
                        read_conversion=as_float_scalar,
                    ),
                    Element_Specification_IESTM2714(
                        "BandwidthCorrected",
                        "bandwidth_corrected",
                        read_conversion=(
                            lambda x: True if x == "true" else False),
                        write_conversion=(
                            lambda x: "true" if x is True else "False"),
                    ),
                ),
                "data":
                Element_Specification_IESTM2714(
                    "SpectralData", "wavelength", required=True),
            })

        self._path: Optional[str] = None
        self.path = path
        self._header: Header_IESTM2714 = Header_IESTM2714()
        self.header = optional(header, self._header)
        self._spectral_quantity: Optional[Literal["absorptance", "exitance",
                                                  "flux", "intensity",
                                                  "irradiance", "radiance",
                                                  "reflectance", "relative",
                                                  "transmittance", "R-Factor",
                                                  "T-Factor",
                                                  "other", ]] = None
        self.spectral_quantity = spectral_quantity
        self._reflection_geometry: Optional[Literal["di:8", "de:8", "8:di",
                                                    "8:de", "d:d", "d:0",
                                                    "45a:0", "45c:0", "0:45a",
                                                    "45x:0", "0:45x",
                                                    "other", ]] = None
        self.reflection_geometry = reflection_geometry
        self._transmission_geometry: Optional[Literal["0:0", "di:0", "de:0",
                                                      "0:di", "0:de", "d:d",
                                                      "other"]] = None
        self.transmission_geometry = transmission_geometry
        self._bandwidth_FWHM: Optional[Floating] = None
        self.bandwidth_FWHM = bandwidth_FWHM
        self._bandwidth_corrected: Optional[Boolean] = None
        self.bandwidth_corrected = bandwidth_corrected
Esempio n. 3
0
from colour.models.rgb.transfer_functions import full_to_legal, legal_to_full
from colour.utilities import Structure, as_float, from_range_1, to_domain_1

__author__ = 'Colour Developers'
__copyright__ = 'Copyright (C) 2013-2019 - Colour Developers'
__license__ = 'New BSD License - http://opensource.org/licenses/BSD-3-Clause'
__maintainer__ = 'Colour Developers'
__email__ = '*****@*****.**'
__status__ = 'Production'

__all__ = ['VLOG_CONSTANTS', 'log_encoding_VLog', 'log_decoding_VLog']

VLOG_CONSTANTS = Structure(cut1=0.01,
                           cut2=0.181,
                           b=0.00873,
                           c=0.241514,
                           d=0.598206)
"""
*Panasonic V-Log* colourspace constants.

VLOG_CONSTANTS : Structure
"""


def log_encoding_VLog(L_in,
                      bit_depth=10,
                      out_legal=True,
                      in_reflection=True,
                      constants=VLOG_CONSTANTS):
    """
Esempio n. 4
0
    def __init__(
        self,
        manufacturer: Optional[str] = None,
        catalog_number: Optional[str] = None,
        description: Optional[str] = None,
        document_creator: Optional[str] = None,
        unique_identifier: Optional[str] = None,
        measurement_equipment: Optional[str] = None,
        laboratory: Optional[str] = None,
        report_number: Optional[str] = None,
        report_date: Optional[str] = None,
        document_creation_date: Optional[str] = None,
        comments: Optional[str] = None,
    ):

        self._mapping: Structure = Structure(
            **{
                "element":
                "Header",
                "elements": (
                    Element_Specification_IESTM2714("Manufacturer",
                                                    "manufacturer"),
                    Element_Specification_IESTM2714("CatalogNumber",
                                                    "catalog_number"),
                    Element_Specification_IESTM2714(
                        "Description", "description", required=True),
                    Element_Specification_IESTM2714(
                        "DocumentCreator", "document_creator", required=True),
                    Element_Specification_IESTM2714("UniqueIdentifier",
                                                    "unique_identifier"),
                    Element_Specification_IESTM2714("MeasurementEquipment",
                                                    "measurement_equipment"),
                    Element_Specification_IESTM2714("Laboratory",
                                                    "laboratory"),
                    Element_Specification_IESTM2714("ReportNumber",
                                                    "report_number"),
                    Element_Specification_IESTM2714("ReportDate",
                                                    "report_date"),
                    Element_Specification_IESTM2714(
                        "DocumentCreationDate",
                        "document_creation_date",
                        required=True,
                    ),
                    Element_Specification_IESTM2714("Comments", "comments",
                                                    False),
                ),
            })

        self._manufacturer: Optional[str] = None
        self.manufacturer = manufacturer
        self._catalog_number: Optional[str] = None
        self.catalog_number = catalog_number
        self._description: Optional[str] = None
        self.description = description
        self._document_creator: Optional[str] = None
        self.document_creator = document_creator
        self._unique_identifier: Optional[str] = None
        self.unique_identifier = unique_identifier
        self._measurement_equipment: Optional[str] = None
        self.measurement_equipment = measurement_equipment
        self._laboratory: Optional[str] = None
        self.laboratory = laboratory
        self._report_number: Optional[str] = None
        self.report_number = report_number
        self._report_date: Optional[str] = None
        self.report_date = report_date
        self._document_creation_date: Optional[str] = None
        self.document_creation_date = document_creation_date
        self._comments: Optional[str] = None
        self.comments = comments