Нужно преобразовать значение RGB в систему XYZ, затем на диаграмме xy (цветовой локус, CIE 1931) провести луч из точки белого (для заданого источника света A, C, D65...) через заданую точку xy. Точка пересечения луча с кривой спектральных цветов даст доминирующую длину волны. Для пурпурных цветов луч проводится в противоположную сторону. Обычно для них ставится штрих у лямбды. С програмной точки зрения можно использовать сплайны. Литература: Джадд, Вышецки.
Преобразование Хаара это свертка сигнала с вейвлетом Хаара и масштабирующей функцией. https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B9%D...
Преобразование Хаара соотносится с вейвлетом Хаара примерно так же, как и преобразование Фурье соотносится к функции синуса.