-
-
Notifications
You must be signed in to change notification settings - Fork 252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate where Bruce Lindbloom's "Von Kries" chromatic adaptation transform matrix is coming from. #121
Comments
I am not 100% sure but I think I already looked into hat at some point and found the Matrix in Fairchild CAM book. Don't have the book at hand right now, but I'll have a look tomorrow. |
Ah that's a very good clue, cheers! I have the kindle edition, I will do a search :) Thanks! |
Yeah indeed it's in (9.5 FAIRCHILD’S 1990 MODEL, Equation 9.26):
I was actually wondering if the version of the paper was the result of some kind of normalisation, now I don't know at all. |
Apparently the matrix from the PDF is coming from Mark Fairchild CAM book 1998 edition, I guess it may have been updated later and normalised? I will actually probably ask him. |
Mark kindly replied:
I'm thinking about rolling in the one normalized for the equal-energy stimulus. |
Actually let's keep the matrix as it is, I will close the issue for now. |
Hi @ValZapod, We are using the correct one, thanks for checking though! colour/colour/adaptation/datasets/cat.py Line 184 in c8acc31
Cheers, Thomas |
Well, the quote you gave in #121 (comment) is for CAT02:
Hence my answer :) I will look at the Von Kries one. |
Note that for IPT, we use the one as given in the model: Line 47 in c8acc31
So it does not really matter in for any of the models, however, if you want to use chromatic adaptation only with that particular matrix, you are using something whose origin is unclear. I might actually contact Lindbloom directly to know more about it. |
The matrix there is the IPT one, it does not explain where the Von Kries from Lindbloom is coming from though. |
Good find! The matrix is sourced from here: https://onlinelibrary.wiley.com/doi/abs/10.1002/col.5080180308 |
Looking at the code it is actually the CIE1994 / Nayatani95 one and we use it directly: colour/colour/appearance/nayatani95.py Line 61 in c8acc31
colour/colour/adaptation/cie1994.py Line 46 in c8acc31
Mistery solved, I might have come to the same conclusion 6 years ago but did not remember. |
Unfortunately, it is quite a common issue in this domain, usually arises from errors when reproducing values to precision/rounding related error. |
No worries and you are welcome, I started to sweat a bit when you mentioned CAT02 earlier though :)
If the model is specifically patented, we probably won't! Note that we have ICtCp which is IPT + PQ: and probably very close (if not the same): https://github.com/colour-science/colour/blob/c8acc31a8507dae1af81d7958490ac3428dc2728/colour/models/rgb/ictcp.py |
It is patented, so it is pretty much a no-go for a library like Colour. |
The matrix we are using for Von Kries CAT is originating from Bruce Lindbloom website: http://brucelindbloom.com/Eqn_ChromAdapt.html, the issue is that there is no source for it or any of them actually, and I ran into that paper specifying a different Von Kries CAT from Hunt, Pointer and Estevez: http://infoscience.epfl.ch/record/34049/files/SusstrunkFH01.pdf
Bruce Lindbloom:
Hunt, Pointer and Estevez:
The text was updated successfully, but these errors were encountered: