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
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