I am in the pursuit of "simulating" the readings of a spectrophometer equipped with a polarizing filter. I start with a printed color testchart that looks like the image below giving me 294 sets of normalized XYZ values :
I have an old Spectrolino that allows taking measurements with or without a polarizing filter.
My procedure involved fitting a multiple linear regression between the 'Unfiltered' data and the 'Polarized' data. See the attached m file.
The results I get from mvregress are 'perfect'. But when I try to apply the coefficients to a different testchart, which originally has not been measurement with the Spectrolino, even if it comes from the same printer using the same inks on the same substrate, I get 'negative' values :
There is no way a well-calibrated spectrophotometer can read "negative" values in XYZ or on L* which has a range of 0 to 100 by defintion.
So my question is how can I put a constraint on my model? So that I avoid negative values once I apply it to my target testchart?
Perhaps the simplest solution is to apply a linear scaing of some sort? Such that the lowest Y value, for instance, would be "positive" or some value I would want to experiment with, such as 0.1 or 1.5 or 2.0?
Thank you very much for taking the time to read my question. Any help is appreciated. And if you need my Excel and Text file, just le me know. I'll post them.