Thanks a lot for your replies,

What I dont really understand is how to make use of those matrices to make this kind of conversion. I mean, if you take two pictures at different shutter speed values of the exactly same scene, then the values of a little area of the picture would have the same XYZ values but the RAW data of the camera should be different, so this matrix should only be useful for specific shutter speed, and so, isnt it ?

[a href=\"index.php?act=findpost&pid=184154\"][{POST_SNAPBACK}][/a]

Changing the exposure time by a factor X linearly rescales the raw data by X. In order not to screw up this linearity, any attempt to fit camera raw values to XYZ values should be linear (XYZ values are also linear wrt change of luminosity). So the general map is

"X" = a1 R +a2 G + a3 B

"Y" = b1 R +b2 G + b3 B

"Z" = c1 R +c2 G + c3 B

where "X", "Y" and"Z" are the best approximation the camera can make to XYZ values of the recorded scene, RGB are the camera raw values for the three color channels (suitably interpolated, and ignoring any issues stemming from such interpolation), and the coefficients ai, bi, and ci (i=1,2,3) are determined by fitting the spectral response functions of the camera to the XYZ spectral response functions as best as possible via a linear map.