Best algorithm for matching colours.

后端 未结 5 704
刺人心
刺人心 2020-11-30 21:47

I have an array of around 200 colours in RGB format. I want to write a program that takes any RGB colour and tries to match a colour from the array that is most \"similar\".

5条回答
  •  南笙
    南笙 (楼主)
    2020-11-30 22:51

    No, you do not need neural networks here! Simply consider an HSL color value a vector and define a weighted modulus function for the vector like this:

    modulus = sqrt(a*H1*H1 + b*S1*S1 + c*L1*L1);
    
    where a,b,c are weights you should decide based on your visual definition of what
    creates a bigger difference in perceived color - a 1% change in Hue or a 1%
    change in Saturation
    

    I would suggest you use a = b = 0.5 and c = 1

    Finally, find out the range your modulus would take and define similar colors to be those which have their moduli very close to each other (say 5%)

提交回复
热议问题