@porneL Напишите себе программу, которая спросит вас, какой цвет выглядит лучше, запишите результаты, а затем проведите регрессионный анализ, чтобы придумать шаблон. Это похоже на то, что делают графические системы, чтобы позволить пользователям откалибровать сглаживание шрифта в соответствии с тем, что «выглядит лучше». Чтобы защититься от собственных предубеждений, вы можете попросить разных людей запустить программу и отправить результаты.

ычислить сходство между двумя цветами в цветовом пространстве RGBA? (где цвет фона неизвестен конечно)

Мне нужно переназначить изображение RGBA в палитру цветов RGBA, найдяЛучший запись палитры для каждого пикселя в изображении *.

В цветовом пространстве RGB можно предположить, что наиболее сходным цветом является цвет с наименьшим евклидовым расстоянием. Однако этот подход не работает в RGBA, например, евклидово расстояние отrgba(0,0,0,0) вrgba(0,0,0,50%) меньше чемrgba(100%,100%,100%,1%), но последний выглядит намного лучше.

Я использую предварительно умноженное цветовое пространство RGBA:

r = r×a
g = g×a
b = b×a

и я попробовал эту формулу (редактировать: Смотрите ответ ниже для лучшей формулы):

Δr² + Δg² + Δb² + 3 × Δa²

но это не таксмотрю оптимальный - в изображениях с полупрозрачными градиентами он находит неправильные цвета, которые вызывают разрывы / острые края. Линейные пропорции между непрозрачными цветами и альфа кажутся подозрительными.

Какая оптимальная формула?

*) для простоты этого вопроса я игнорирую диффузию ошибок, гамма и психовизуальные цветовые пространства.

Немного связано: если вы хотите найти ближайший цвет в этом неевклидовом пространстве RGBA,Vp-деревья являются лучшим.

Ответы на вопрос(5)

Ваш ответ на вопрос