You shouldn't be using JCh_to_Jab with CAM16. The CAM16-UCS J'a'b' is a very bizarre construct compared to CIELAB, as a' and b', when converted to cartesian, output hue and ln(1 + 0.0228M)/0.0228, where M is colorfulness. It does not output hue and chroma. Likewise, J' is equal to 1.7*J/(1 + 0.007J). Thus it is almost J, but not.
You should probably just convert straight from XYZ to JCh, without using the UCS.
Thanks for correcting. About color science, something I don't know keeps coming up.
Is that why CAM16 JMh exists?
Anyway, Jab_to_JCh is just used to convert cartesian to cylindrical. Not to get actual J, C, h value.
Relative position on the CAM16-UCS's a-b plane is what I want to get. So, I think it's fine for the purpose.
(I don't want to use CIELAB because its hue prediction is bad, especially reddish blue.)
You shouldn't be using JCh_to_Jab with CAM16. The CAM16-UCS J'a'b' is a very bizarre construct compared to CIELAB, as a' and b', when converted to cartesian, output hue and ln(1 + 0.0228M)/0.0228, where M is colorfulness. It does not output hue and chroma. Likewise, J' is equal to 1.7*J/(1 + 0.007J). Thus it is almost J, but not.
You should probably just convert straight from XYZ to JCh, without using the UCS.
Thanks for correcting. About color science, something I don't know keeps coming up.
Is that why CAM16 JMh exists?
Anyway, Jab_to_JCh is just used to convert cartesian to cylindrical. Not to get actual J, C, h value. Relative position on the CAM16-UCS's a-b plane is what I want to get. So, I think it's fine for the purpose.
(I don't want to use CIELAB because its hue prediction is bad, especially reddish blue.)