Пример #1
0
def get_colorspace_matrix(colorspace, primaries_only=False, inv=False):
    """Return a colorspace RGB to XYZ matrix.

    Args:
        colorspace (str): input colorspace.

    Kwargs:
        primaries_only (bool): primaries matrix only, doesn't include white point.
        inv (bool): return XYZ to RGB matrix.

    Returns:
        .numpy.matrix (3x3)

    """
    from utils.colorspaces import COLORSPACES
    from utils.private_colorspaces import PRIVATE_COLORSPACES
    colorspace_obj = COLORSPACES.get(colorspace) or PRIVATE_COLORSPACES.get(
        colorspace)

    if not colorspace_obj:
        raise NotImplementedError(
            "Could not find {0} colorspace".format(colorspace))

    if primaries_only:
        matrix = get_primaries_matrix(colorspace_obj.get_red_primaries(),
                                      colorspace_obj.get_green_primaries(),
                                      colorspace_obj.get_blue_primaries())
    else:
        matrix = get_RGB_to_XYZ_matrix(colorspace_obj.get_red_primaries(),
                                       colorspace_obj.get_green_primaries(),
                                       colorspace_obj.get_blue_primaries(),
                                       colorspace_obj.get_white_point())
    if inv:
        return matrix.I
    return matrix
Пример #2
0
def get_colorspace_matrix(colorspace, primaries_only=False, inv=False):
    """Return a colorspace RGB to XYZ matrix.

    Args:
        colorspace (str): input colorspace.

    Kwargs:
        primaries_only (bool): primaries matrix only, doesn't include white point.
        inv (bool): return XYZ to RGB matrix.

    Returns:
        .numpy.matrix (3x3)

    """
    from utils.colorspaces import COLORSPACES
    from utils.private_colorspaces import PRIVATE_COLORSPACES
    colorspace_obj = COLORSPACES.get(colorspace) or PRIVATE_COLORSPACES.get(colorspace)

    if not colorspace_obj:
        raise NotImplementedError("Could not find {0} colorspace".format(colorspace))

    if primaries_only:
        matrix = get_primaries_matrix(colorspace_obj.get_red_primaries(),
                                      colorspace_obj.get_green_primaries(),
                                      colorspace_obj.get_blue_primaries())
    else:
        matrix = get_RGB_to_XYZ_matrix(colorspace_obj.get_red_primaries(),
                                       colorspace_obj.get_green_primaries(),
                                       colorspace_obj.get_blue_primaries(),
                                       colorspace_obj.get_white_point())
    if inv:
        return matrix.I
    return matrix