# Conversion formula from spectrophotometer readings to any standard color space profile?

I have readings of colors from a spectrophotometer that records across the human visible color spectrum 390nm to 790nm intervals. I'd like to convert this into any color space, could be CIE XYZ, HSL, CIE-Lab, etc. Any color temperature is okay.

-

The tristimulus values for CIEXYZ can be obtained by integrating the spectral curve with three distinct weight curves.

From XYZ there are documented formulas to convert to Lab, HSL, CSV, ...

http://www.zeiss.com/c12567bb00549f37/Contents-Frame/80bd2fe43b50aa3ec125782c00597389

http://en.wikipedia.org/wiki/CIE_1931_color_space

http://en.wikipedia.org/wiki/Lab_color_space#CIE_XYZ_to_CIE_L.2Aa.2Ab.2A_.28CIELAB.29_and_CIELAB_to_CIE_XYZ_conversions

-

If you use Matlab, with Spectral and XYZ Color Functions you can obtain RGB values using the function spectrumRGB.

-

Both Tobias' and Kris' answer are good, but depending on what you are trying to do, it's important to know that not all colors can be represented in all color spaces. For example, RGB covers only a small triangle of the CIE space (http://en.wikipedia.org/wiki/File:Cie_Chart_with_sRGB_gamut_by_spigget.png).

Furthermore, different monitors will give you different colors for the same RGB values, and the weight curves differ from person to person. This means that it's not straightforward at all to measure the spectrum of an object or solution and reproduce the color you see on a screen.

-