Am 22.11.2011 00:57, schrieb Gerhard Fuernkranz:
Am 20.11.2011 01:42, schrieb Roberto Michelena:Attached a file with a variety of measurements from a P2P25x target (idealliance) ...Thanks, Roberto. I'll take a look at your data - a detailed investigation make take a while, though... After a first brief inspection it seems that * the data from the same instrument, but for different calibration standard can be mapped to each other with virtually no errors. * DTP70 readings can be estimated from DTP70_UV readings (or vice versa) with an estimated error of about 0.1 dE RMS * I1 readings can be estimated from DTP70 or TDP70_UV readings (or vice versa) with an estimated error of about 0.3 dE RMS
I have done some more investigations with the data in the meantime, and I have also drafted two programs "scmxmake" and "scmxapply" which create and apply a (media-specific) spectral correction matrix from/to spectral .ti3 files. They are based on the on-board methods available in Argyll and thus fit with the Argyll framework (which made the implementation a bit tedious and also more CPU-hungry, compared to simply prototyping the underlying maths in a language like GNU Octave). A patch to Argyll V1.3.5 is attached (I hope it compiles and runs under Windows as well, as I have only tested on Linux). Maybe you want to give it a try... Usage: scmxmake [options] input1.ti3 input2.ti3 output.scmx -v Verbose mode -O Use OLS instead of TLS -p num_pc Choose number of principal components to use for the PCR regression. If not specified or <= 0, then the optimal num_pc is estimated by bootstrap cross validation. -B samples Choose number of bootstrap samples to to use for estimating the error. More samples are better, but computationally more expensive. <samples> must be either 0 or >= 100. If samples = 0, then errors are not estimated. -i illum Choose viewing illuminant: A, C, D50 (def.), D65, F5, F8, F10 or file.sp (Only used for calculation of error estimates) -o observ Choose CIE Observer for spectral data: 1931_2 (def), 1964_10, S&B 1955_2, shaw, J&V 1978_2 (Only used for calculation of error estimates) input1.ti3 1st measurement file input2.ti3 2nd (reference) measurement file output.scmx Correction matrix file. The correction estimates input2.ti3 from input1.ti3. Usage: scmxapply corr.scmx input.ti3 output.ti3 corr.scmx Correction matrix file input.ti3 Measurement file output.ti3 Converted measurement file Example usage for i1 vs. DTP70: * Obtain "training-chart-i1.ti3" and "training-chart-i1.ti3" by measuringa printed, representative test chart with both, i1 and DTP70. * Compute correction: scmxmake -v training-chart-i1.ti3 training-chart-DTP70.ti3 corr_i1_to_DTP70 -> creates "corr_i1_to_DTP70.scmx" * Now read other chart(s) (but same printer, ink, paper, etc.) with the i1, resulting in say "chart2-i1.ti3". * Apply correction in order to estimate the readings which would have been obtained when reading this chart with DPT70 instead of i1: scmxapply corr_i1_to_DTP70.scmx chart2-i1.ti3 chart2-DTP70.ti3 Regards, Gerhard