-
Beta Was this translation helpful? Give feedback.
Replies: 19 comments 13 replies
-
Greetings Hoang. Welcome. I believe what you are likely spotting is the discrepancy between the Display P3 specification's definitions of the primaries and the ICC protocol driven values. If you adapt the values you are seeing in your ColorSync utility from ICC D50 to the standardized white point for Display P3 being D65 xy coordinates of The reason is that the ICC V4 protocol has a fixed and constant Profile Connection Space. When using XYZ as the Profile Connection Space, all values must be chromatically adapted to ICC D50. Hence the Display P3 values ColorSync displays should in fact be the chromatically adapted ICC protocol values.
|
Beta Was this translation helpful? Give feedback.
-
Hi, I haven't looked at how they get the normalised XYZ values but indeed as @sobotka says, you need to chromatically adapt the primaries from D65 to D50: import colour
>>> colour.xy_to_XYZ(
... colour.chromatically_adapted_primaries(
... colour.models.DISPLAY_P3_COLOURSPACE.primaries,
... colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D65'],
... colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D50'])) * 0.692
array([[1.48184488, 0.69200000, -0.00388932],
[0.29343346, 0.69200000, 0.03142031],
[1.72315629, 0.69200000, 8.89448088]]) Green matches quite well here now! |
Beta Was this translation helpful? Give feedback.
-
In many ICC's you'll also find a Here's a proof of principle using my unfinished
And the output:
The discrepancy between the values listed here and the specification's standard values ultimately comes down to the quantisation within the ICC file itself. |
Beta Was this translation helpful? Give feedback.
-
Thank guys, I got it now. |
Beta Was this translation helpful? Give feedback.
-
Hi, to conclude, if I use Photoshop convert profile my image to Display P3 in my macbook, then I use colour to visualize its CIE diagram, what exactly should I do in my code? |
Beta Was this translation helpful? Give feedback.
-
@hminle sadly, the answer is "It depends". The problem is that on ICC V4 enabled software, there is no longer a means to reliably get an absolute colourimetric output. So if the goal is to get to known values, you are out of luck with the ICC chain now thanks to V4's exceptionally poor design choice here. Better would be to use the Colour science library to load the image from a known state and transform it with granular control to the XYZ domain, and onward to xyY as required for your plots. Not sure if that helps. The question depends on what exactly you are trying to achieve and your contexts. |
Beta Was this translation helpful? Give feedback.
-
Hi @sobotka , my goal is I want to develop some algorithm that can convert images from a small gamut to a bigger one like Display P3 and compare it with Photoshop. Then I need to calculate deltaE between my output and Photoshop output. That's my context. But I am not sure, if I use colour library to compare their delta E, is it good or not? |
Beta Was this translation helpful? Give feedback.
-
Colour is excellent. ICC V4 sadly is missing that crucial ability to get a sense of the values mapped under an ICC absolute colorimetric approach. That means specifically that the white point in the output can’t be firmly known. As such, evaluations will be off. If you limit yourself to ICC V2, absolute colourimetric results are possible, assuming the ICC attributes are kept firmly in view. |
Beta Was this translation helpful? Give feedback.
-
Hi @sobotka , so if I create a custom profile in Photoshop like this: and I convert my sRGB image to this profile using Photoshop.
Am I right? |
Beta Was this translation helpful? Give feedback.
-
You are ignoring the most important aspect which is what version of ICC is being harnessed. Without that, the values are going to be inconsistent and meaningless. |
Beta Was this translation helpful? Give feedback.
-
But as what you said earlier, it's just the difference between D50 and D65, right? What am I missing here? Btw, I have checked this link: http://www.color.org/chardata/rgb/DCIP3.xalter Thanks |
Beta Was this translation helpful? Give feedback.
-
I don’t have an answer as the problem is subtly complex when trying to deal with absolute values in an ICC system of unknowns. For more information, this post from Graeme Gill of ArgyllCMS is extremely informative for folks unfamiliar with the subject. In terms of your goal of gamut mapping, not to discourage you, but the halls of colour are littered with the corpses of Good Ideas that attempted and failed miserably to gamut map upwards to a wider gamut. With that said, if I were attempting such a thing, I would:
|
Beta Was this translation helpful? Give feedback.
-
Hi @sobotka , so you mean that even I use ICC v4 color profile (http://www.color.org/chardata/rgb/DCIP3.xalter) in Photoshop, I still cannot draw its CIE diagram in Colour library, right? |
Beta Was this translation helpful? Give feedback.
-
You can of course use Colour. The validity of the values is the issue. The problem is that it is very tricky to impossible to get the native colourimetry of something out of an ICC profile with V4, as there is no way to get absolute colourimetric output. It’s all relative now to ICC D50, essentially obfuscating the true colourimetry. Read that link on the |
Beta Was this translation helpful? Give feedback.
-
Hi @sobotka , yes I've read the article. |
Beta Was this translation helpful? Give feedback.
-
ICC V4 is the problem. |
Beta Was this translation helpful? Give feedback.
-
even if I use perceptual rendering intent in Photoshop? |
Beta Was this translation helpful? Give feedback.
-
Perceptual would be even worse. There are four rendering intents, two of which are potentially science based:
Items 1. and 2. are the only potential colour science approaches, where two is adapted to some unique white. Items 3. and 4. are no rules, vendor secret sauce. |
Beta Was this translation helpful? Give feedback.
-
Thank @sobotka a lot, I learned a lot from you. |
Beta Was this translation helpful? Give feedback.
Hi,
I haven't looked at how they get the normalised XYZ values but indeed as @sobotka says, you need to chromatically adapt the primaries from D65 to D50:
Green matches quite well here now!