|
|
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые форумчане В одной простой графической задаче я сравнивал "близость цветов" по формуле: ColorDelta = dR + dG + dB Мне говорят, что такое сравнение не корректное Что чувствительность глаза к компонентам цвета разная. И правильная формула ColorDelta = sqrt(dR*dR*0.2126 + dG*dG*0.7152 + dB*dB*0.0722) Однако в одном месте я встретил вариант ColorDelta = sqrt(dR*dR*0.2126*0.2126 + dG*dG*0.7152*0.7152 + dB*dB*0.0722*0.0722) Хочу точно знать, какой вариант правильный ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2012, 19:25 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
Возьми кучу цветов. Отсортируй их используя разные формулы. Получишь несколько массивов с цветами. Теперь нарисуй на основе этих массивов радуги и полюбуйся на них. Сам увидишь какая из радуг более плавная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2012, 19:37 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
> Изопропил Да, я тоже умею вбивать слова в поисковик гугла и копипастить ссылки на разные форумы. Вопрос звучал так. Какой из 3х вариантов правильный ? Коэффициенты по составляющим цвета уже рассчитаны. Встречал их во многих местах. Осталось - точно определить, каким образом с их помощью определить разницу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 09:32 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUЗдравствуйте, уважаемые форумчане В одной простой графической задаче я сравнивал "близость цветов" по формуле: ColorDelta = dR + dG + dB Мне говорят, что такое сравнение не корректное Что чувствительность глаза к компонентам цвета разная. И правильная формула ColorDelta = sqrt(dR*dR*0.2126 + dG*dG*0.7152 + dB*dB*0.0722) Однако в одном месте я встретил вариант ColorDelta = sqrt(dR*dR*0.2126*0.2126 + dG*dG*0.7152*0.7152 + dB*dB*0.0722*0.0722) Хочу точно знать, какой вариант правильный ! Все три формулы вобщем-то будут работать. Большую погрешность ты получишь на численных методах расчёта палитр или кластеризации цветов (если таковые будешь использовать). Первый метод - похож на расстояние Хэмминга. Второй - судя по всему правильный. Взвешенное средне-квадратическое. В идеале ColorDelta должно быть в диапазоне [0..1]. Оно-же похоже на декартово расстояние в пространсвте цвета. Третий - возводит в квадрат и весовые коэффициенты. Зачем это надо - непонятно. Вобщем с точки зрения конечного продукта - все эти формулы хороши. С точки зрения математики мне тоже не к чему придраться т.к. нет вывода или доказательства формул. Они эвристичны и брались "поплевав в потолок". Они имеют смысл только по результатам тестирования субъективной оценки человеком. Возьми подопытных. Дай им образцы цветов и пусть сличают какие цвета похожи. Где будет больше совпадений с формулой - там и будет правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 11:57 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
вот этот мужик говорит что приведённые мной цифры - это новый стандарт определения яркости Вот в чём вопрос... Есть алгоритм компрессии изображения с потерями Нужно определить, насколько исходный цвет отличается от оригинала (при компрессии сравниваются несколько вариантов кодирования, выбирается - с меньшей ошибкой) Но мне встретились несколько вариантов рассчёта разницы Но нужно выбрать один максимально правильный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 12:11 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUЕсть алгоритм компрессии изображения с потерями Нужно определить, насколько исходный цвет отличается от оригинала (при компрессии сравниваются несколько вариантов кодирования, выбирается - с меньшей ошибкой) Пахнет классической ошибкой. Тебе ведь надо сравнить не 1=1 пиксел а сравнить два изображения. Как будешь сравнивать? Как будешь подытоживать результат X*Y сравнений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 12:17 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
Всё изображение делится на компрессируемые блоки Для каждого блока предполагается несколько вариантов. Каждый вариант имеет "отклонение" от исходного блока Выбирается вариант с наименьшим отклонением Отклонение исходного блока = сумма отклонений по каждому пикселю Раньше я считал dR + dG + dB Но судя по всему такой вариант не совсем правильный. Лучше учитывать особенности восприятия глазом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 12:35 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
При чём здесь блоки, чувак? Глаз человека когда оценивает качество потерь при сжатии реагирует на картинку в целом! Более того я тебе могу искусственно cымитировать ситуацию когда картинка станет покрыта бледной шахматной доской (ошибка кодирования блока будет идти со знаком + - плюс-минус или нестыковка границ соседних блоков ) и при этом общие показатели сжатия будут - просто великолепны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 12:54 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
всё замечательно, круто только алгоритм сейчас заточен на БЛОКИ и сейчас нужно определиться по погрешности в рамках блока даже не так. Погрешности в рамках каждого пикселя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:10 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUЛучше учитывать особенности восприятия глазом и особенности отображения матрицей (цветовые профили). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:11 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
лучше сравнивать цвет не в RGB модели, а в тех, где яркость отделена от цвета( L*a*b*, HSV ...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:36 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
автори особенности отображения матрицей (цветовые профили). Звучит как что-то алгоритмически сложное Но интересно было бы почитать авторлучше сравнивать цвет не в RGB модели, а в тех, где яркость отделена от цвета( L*a*b*, HSV ...) :) у меня есть RGB значит формула должна исходить из RGB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:38 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUу меня есть RGB значит формула должна исходить из RGB RGB - это просто форма хранения. Упаковка. На самом деле глаз видит длинну волны из спектра радуги, яркость (силу в люксах или люменах) и насыщенность (процентное присутствие в цвете белого цвета). Белый является вобщем - то не цветом а равномерным линейным шумом радуги. Или линейной смесью всех-всех цветов. Поэтому что использовать для хранения - решай сам. Хоть чёрта лысого. Но обычно для самых сложных цветовых фильтров и преобразований используют HSV(Hue-Saturation-Value) а в RGB перегоняют для хранения в памяти видеоадаптера или в старых форматах растра (Bitmap). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:43 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
Да я не против )) Только у меня сейчас есть RGB и разницу посчитать тоже в RGB ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:47 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
maytonRGB - это просто форма хранения. rgb - это уровни яркости для излучающего устройства. в данном случае для монитора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:48 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
Верно. Я же писал про память видеоадаптера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:50 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНужно определить, насколько исходный цвет отличается от оригинала Это какой-то бессмысленный критерий. Рассмотрите для примера двухцветный рисунок и два варианта его искажения: 1. Оба цвета стали на 10% темнее (или там тусклее или ещё что-нибудь) 2. Один цвет стал на 10% темнее, другой на 10% светлее. Ваше сравнение даст для них одинаковый результат, а человеческий глаз с ним ну совершенно не согласится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:32 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUВопрос звучал так. Какой из 3х вариантов правильный ? Все. И есть ещё куча правильных формул. Спектральная чувствительность глаза каждого человека индивидуальна. Более того, даже правый и левый глаз могут иметь разную чувствительность. Это первое. Второе - на экране и на распечатке цвета выглядят совершенно по-разному. Знакомо? А то, что больше половины народу считает результаты аппаратной калибровки экран-принтер полной туфтой - знаете? А ведь она очень даже точная - да только глаз опять-таки думает по-своему... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:45 |
|
||
|
Реализация сравнения двух цветов
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНо нужно выбрать один максимально правильный Вот здесь http://www.easyrgb.com/index.php?X=MATH есть формулы для перевода из RGB в XYZ и затем из XYZ в CIE-Lab. А вот здесь http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CIE2000.html - для рассчета разницы цветов в Lab. Это будет максимально правильно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 16:36 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=67&tid=1342219]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 438ms |

| 0 / 0 |
