Hi @tommyhhrip,
You could use Colour:
import colour
import numpy as np
LAB = np.array([50, 10, -40])
WP_LAB = colour.CCS_ILLUMINANTS["CIE 1931 2 Degree Standard Observer"]["D50"]
RGB_COLOURSPACE = colour.models.RGB_COLOURSPACE_ACESCG
XYZ = colour.Lab_to_XYZ(LAB, WP_LAB)
RGB = colour.XYZ_to_RGB(XYZ, RGB_COLOURSPACE, WP_LAB)
print(RGB)
[ 0.16645398 0.17553745 0.45316944]
colour.convert(
LAB / 100, "CIE Lab", "RGB",
Lab_to_XYZ={"illuminant": WP_LAB},
XYZ_to_RGB={"colourspace": RGB_COLOURSPACE, "illuminant": WP_LAB})
[ 0.16645398 0.17553745 0.45316944]
colour.convert(
LAB / 100, "CIE Lab", "RGB",
Lab_to_XYZ={"illuminant": WP_LAB},
XYZ_to_RGB={"colourspace": RGB_COLOURSPACE, "illuminant": WP_LAB},
verbose={"mode": "Long"})
===============================================================================
* *
* [ Conversion Path ] *
* *
* "Lab_to_XYZ" --> "XYZ_to_RGB" *
* *
===============================================================================
===============================================================================
* *
* [ "Lab_to_XYZ" ] *
* *
* [ Signature ] *
* *
* <Signature (Lab: 'ArrayLike', illuminant: 'ArrayLike' = array([ 0.3127, *
* 0.329 ])) -> 'NDArrayFloat'> *
* *
* [ Filtered Arguments ] *
* *
* {'illuminant': array([ 0.3457, 0.3585])} *
* *
* [ Conversion Output ] *
* *
* [ 0.19700617 0.18418652 0.3751713 ] *
* *
===============================================================================
===============================================================================
* *
* [ "XYZ_to_RGB" ] *
* *
* [ Signature ] *
* *
* <Signature (XYZ: 'ArrayLike', colourspace: 'RGB_Colourspace | str', *
* illuminant: 'ArrayLike | None' = None, chromatic_adaptation_transform: *
* "Literal['Bianco 2010', 'Bianco PC 2010', 'Bradford', 'CAT02 Brill *
* 2008', 'CAT02', 'CAT16', 'CMCCAT2000', 'CMCCAT97', 'Fairchild', *
* 'Sharp', 'Von Kries', 'XYZ Scaling'] | str | None" = 'CAT02', *
* apply_cctf_encoding: 'bool' = False, *args: 'Any', **kwargs: 'Any') -> *
* 'NDArrayFloat'> *
* *
* [ Filtered Arguments ] *
* *
* {'colourspace': RGB_Colourspace('ACEScg', *
* [[ 0.713, 0.293], *
* [ 0.165, 0.83 ], *
* [ 0.128, 0.044]], *
* [ 0.32168, 0.33767], *
* 'ACES', *
* [[ 0.66245418, 0.13400421, 0.15618769], *
* [ 0.27222872, 0.67408177, 0.05368952], *
* [-0.00557465, 0.00406073, 1.0103391 ]], *
* [[ 1.64102338, -0.32480329, -0.2364247 ], *
* [-0.66366286, 1.61533159, 0.01675635], *
* [ 0.01172189, -0.00828444, 0.98839486]], *
* linear_function, *
* linear_function, *
* False, *
* False), *
* 'illuminant': array([ 0.3457, 0.3585])} *
* *
* [ Conversion Output ] *
* *
* [ 0.16645398 0.17553745 0.45316944] *
* *
===============================================================================
array([ 0.16645398, 0.17553745, 0.45316944])
You can also use it online with Google Colab so that you don’t need to install anything. Here is a notebook: Google Colab
Cheers,
Thomas