-
-
Notifications
You must be signed in to change notification settings - Fork 12
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
Check if color is a human, visible color [MacAdams Limits] #333
Comments
In case it's helpful, there's a MATLAB algorithm in this article that I've seen referenced a few places. "The computation takes around 10s for each locus using MATLAB 2010a with Windows XP x64/2.8 GHz Intel Core 2 Duo/2 GB RAM." So maybe a second or two on modern hardware. No idea if there's a smart way to less work by either:
|
I did look at that paper before. I saw this as well: https://www.researchgate.net/publication/39435417_A_new_algorithm_for_calculating_the_MacAdam_limits_for_any_luminance_factor_hue_angle_and_illuminant. I just haven't taken the time to dig deeper than a quick glance at the papers. |
So I think you might be able use the same technique you used to implement Pointer's Gamut checking, but with MacAdam's data from this 1935 paper (Here are some relevant screenshots: 1, 2, 3). R here = "visual efficiency", this technique will only work if that = luminance (Y). I am not sure about that assumption. |
Yes, a LUT would obviously work. Of course a tradeoff of how big a LUT to keep in memory vs accuracy would have to be considered. I'd hate to include a high precision LUT table as it would be large and eat up a bunch of memory. The Pointer gamut approach uses a very small table because that is the only data available and it is small enough to not be a big deal. I'd like to get around to dynamically calculating whether a point is in or outside of gamut, but obviously a LUT is a solution that would indeed work. |
I'm not quite sure how I'd like to approach this, or when, but it would be interesting to implement if possible. While neat, it is not absolutely required, but I'd like to look into. There are already premeasured limits out there, much like the Pointer gamut, but it would be cool to calculate it if we can do so in a way that doesn't take forever to calculate. this would allow more accurate results.
The text was updated successfully, but these errors were encountered: