[argyllcms] Re: Making profile of uncalibrated display

  • From: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Fri, 20 Apr 2012 10:12:59 +1000

Ivan Tsyba wrote:
> .cal file contains  256 rows RGB_I RGB_R RGB_G RGB_B table and .ti3 file 
> contains  48 rows RGB_R
> RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z table. How to append that 256 elements on 48 
> elements?
> So it maybe little bit more sophisticated that just replacing RGB values from 
> cal to ti3 file?

They are not appended, the values are replaced by their looked up values.

So:

  for each row of the .ti3 file., ie:

    SAMPLE_ID RGB_R RGB_G RGB_B ....
    .
    17 1.4275 34.039 73.682 ...

      for each of R, G & B, ie:
        G = 34.039

        Normalize G = 34.039/100 = 0.34039

        Locate lookup point in .cal file for a G value of 0.34039
        by locating the RGB_I value it lies between:

        RGB_I RGB_R RGB_G RGB_B
        0.33725 0.36240 0.39923 0.35515
        0.34118 0.36562 0.40221 0.35843

        Linearly interpolate the G value
        cal_G = (0.34039 - 0.33725)/(0.34118 - 0.33725) * 0.40221
              + (0.34118 - 0.34039)/(0.34118 - 0.33725) * 0.39923
              = 0.40161

        [Note        (0.34039 - 0.33725)/(0.34118 - 0.33725) =
               1.0 - (0.34118 - 0.34039)/(0.34118 - 0.33725)]

        De-normalize the calibrated G value

        cal_G *= 100.0

        Replace the G value with its calibrated value in the .ti3 file:

        17 nnnnn 40.161 nnnnn ...

        etc.

     etc.

Graeme Gill.

Other related posts: