In my work, I try to implement the CIELAB color space but struggle to understand what arguments should ideally be selected for the function psychopy.tools.colorspacetools.cielab2rgb to accurately display the colors. The monitor used for the experiment is calibrated via the entries under Linearization in the Monitor Center so my question now is if those values can be used to somehow determine whiteXYZ, conversionMatrix, or transferFunc in cielab2rgb.
Currently, I simply use cielab2rgb((100, 0, 0), transferFunc=srgbTF) to convert my values to RGB and leave the remaining arguments as default. Is there any more accurate way of doing this?
You can get a conversion matrix from the monitor using the function .makeXYZ2RGB() from the Monitor object in your experiment, the rest I’m unsure about as I’m not familiar with this colour space, however @mdc is much more experienced in this area so may be able to help more
Yes, you can use makeXYZ2RGB() to create the conversion matrix if you know the CIE-xy coordinates of your monitors RGB primaries. However, use caution and be sure to validate the output, the feature was intended to be used for supporting CIE-XYZ colorspace but hasn’t been integrated as part of the calibration procedure yet.
@TParsons can you please take a look at adding chromatically coordinates of RGB primaries as part of the monitor profile? For instance, having them automatically obtained from sampled spectra or manually specified. That information will be very useful for colorimetry.
@TParsons@mdc thank you very much for the reply! Sorry for the basic question but is it possible to get the information in makeXYZ2RGB() for the attributes red_xy, green_xy, blue_xy, and whitePoint_xy from a previous calibration in the Monitor Center?
@Alexander I’m pretty sure the information is there somewhere, but not in the Monitor Center (something Todd and I need to figure out). Likely you’ll need to derive that information from the spectral data in the monitor calibration. If you have a third-party colorimeter, they usually output those coordinates too.