But if read it with 0-255 scale and then switch to 16-235?
As I have tried to explain before, any patch set you use must
match the Patch Scale setting you use. If you take one set of measurements and then change the Patch Scale, there will obviously be rounding errors.
This is why I said before that you must
pre-scale any patch sequence based on the Patch Scale setting you wish to use (or re-scale any previously created patch sequence).
If you look at BCS measurement file now, you will also see that the saved data is also correctly scaled depending on what you set as Patch Scale.
For instance, with Patch Scale 0-255, triplet value 163 is normalised to 0.639215686 (0-1 range). But when you scale 163 to Video Levels it becomes triplet value 156. and when you set Patch Scale 16-235, it is correctly recorded as a normalised 0.639269406 (0-1 range).
So the measurement data is correctly scaled and recorded as such. There are differences between 0.639215686 and 0.639269406 because there are differences in the range of 0-255 and 16-235.
This also means if you measure data with one Patch Scale setting and then change that setting afterwards, there is simply no way to avoid these rounding errors. You must
match the patch sequence to the Patch Scale setting, and not change the patch scale setting afterwards. Anything else will be wrong.