Slashdot Mirror


User: nurbz

nurbz's activity in the archive.

Stories
0
Comments
1
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 1

  1. so many mistakes ... on Determining Color Difference Using the CIELAB Model? · · Score: 1

    I read part of the previous replies, and as a colour specialist, I decteted many mistakes. I dont intend to correct all of them, or to know everything about the subject, but I hope my relative knowledge of this field might help the author of the question.
    Lets analyze again your problem. You want to define if 2 colours are sufficiently different to be distinguished. And for that you want to use a colour difference metric. I assume that when you say "on top of each other", you dont mean transparency. And so far, I agree with you. So you are trying to transfer your RGB values into a perceptual colour space, in order to use a colour difference metric. First step: RGB to CIEXYZ First, you can directly apply a 3x3 matrix to compute this transform only if you have CIERGB values. CIERGB values are obtained if the spectrum of your apparatus is similar as the human visual system cones, i.e. if the spectral sensitivity of your red emittor or receptor is equivalent to the human cone sensitive in the red part of the spectrum. And that is unfortunately possible. To go to XYZ, you need to build a more complex transform based on a model derived from the characteristics of your apparatus, i.e. the monitor. GOG models are usually the best for monitors. But you would need to do it for your monitor, and all others where your soft will be ran. Indeed, each monitor have got different characteristics, as someone already mentionned. And I dont even mentionned that you should calibrate your device. So you cannot build a transform which will be accurate enough for every cases. Fortunately, the sRGB transform was defined. If you dont know anything about an image (which device was used to create it), it allows you to transfer its colours to CIEXYZ in a way which is, if not accurate, is as close as possible, given that you dont know anything about it. With sRGB, you can define a roughly correct transform to CIEXYZ. Then to CIELAB: the transform is straight forward, providing that you choose the right std illuminant. I am sure you read the CIELAB colour space is a uniform one, but thet truth is that it was the most uniform one when it was created(1976). Which means that the same colour difference in different regions of the colour space may have a (very) different perceptual difference. Several more complicated colour difference formulaes were thus designed to improve things, all based on the CIELAB, but I dont remember their name. Ask me if you really want to know. Furthermore, a better solution to compute a colour difference would be to use the state-of-the-art perceptual colour space, CIECAM97s, which is MUCH more uniform, and the corresponding difference formula. But the transform is VERY complex, and I am not sure whether you can afford to implement it. Especially since the RGB->XYZ transform is already an approximation.

    Although vision is an easy task - we dont even think about it, the associated process is very complicated. Think: 40% of the human brain is dedicated to vision and related tasks. If one considers the processing power of the brain, you can understand the innerant difficulties.
    Some tips to help you: calibration is an important step, which has to be done for every monitor you target. And you have to build a transform for each of them. But that is not possible. You have to take this into account. sRGB is the best choice for you. And a simple euclidian distance in the CIELAB space is definitely not accurate enough. Consider more complex formulaes. No easy solution sorry. As I said, vision, and especially colour vision, is a paradoxal field. It seems almost easy, but is yet so very much complex! Good luck. DO not hesitate to mail me for questions. nurbz2 at ematic dot com.