RGB фильтры для разных форм дальтонизма
Мой отец дальтоник и, учитывая, что я работаю в играх, где важны визуальные эффекты, я всегда хотел написать фильтр для снимков экрана (или даже какой-нибудь тип шейдера), который имитировал различные формы дальтонизма.
Я видел много ссылок, но никогда не был в состоянии отследить алгоритмы.
Любые алгоритмы будут оценены.
9 ответов
Мой поиск в Google нашел этот, который, кажется, именно то, что вы ищете. Восемь разных версий дальтонизма моделируются путем умножения каждого из значений R,G,B на 3 разных процента и сложения их вместе.
http://www.colorjack.com/labs/colormatrix/ (неработающая ссылка)
Рабочая архивная ссылка (рабочая ссылка)
Я наткнулся на Цветной Оракул и подумал, что это может помочь. Вот краткое описание:
Color Oracle - симулятор дальтонизма для Windows, Mac и Linux. При проектировании цветовой слепоты отгадывают догадки, показывая в реальном времени, что увидят люди с общими нарушениями цветового зрения.
У GIMP есть фильтр дальтонизма в виде -> Фильтры отображения -> Видение с недостатком цвета
Не могу помочь вам с алгоритмами, но следующая статья была довольно откровенной (извините за каламбур): http://critiquewall.com/2007/12/10/blindness.
Ах, на самом деле, http://www.vischeck.com/ полезно.
Google разработал несколько ссылок, возможно, одна из них содержит описание источника или алгоритма: http://www.google.com/search?hl=en&q=simulating+color+blindness&aq=f&oq=
Изменить: Спасибо Torlack за указание, что все знают о Google. Но эффективное использование Google требует использования правильных условий поиска, а хорошие условия поиска не всегда очевидны. Судя по возвращенным заголовкам страниц и паре ссылок, этот конкретный поиск показался весьма актуальным. Я не думаю, что это был достаточно плохой ответ для отрицательного голоса.
Ссылка на colorjack содержит хорошую информацию, но я использую http://colorfilter.wickline.org/. Он может проверить всю страницу: изображения, цвета CSS и все.
Эти преобразования и код подробно описаны на моей странице о дальтонике. По сути, для каждого типа дальтонизма вы сначала линеаризуете значения RGB, затем применяете матрицу преобразования (это продукт 5 матриц, которые я перечисляю отдельно), а затем обрезаете до [0,1] и делите линеаризацию обратно до sRGB.
Например, для дейтеранопии матричный продукт равен
0.33066007 0.66933993 0
0.33066007 0.66933993 0
-0.02785538 0.02785538 1
Это комбинация: rgb -> XYZ -> LMS -> коррекция дейтеранопии -> XYZ -> rgb.
Вы можете скачать мой код R, иллюстрирующий эти вычисления.
Если у вас есть Chrome, вы можете использовать расширение Google Color Enhancer, но я не вижу ничего подобного для Ubuntu в целом.
Недавно я написал libDaltonLens, публичную библиотеку C, которая реализует два эталонных алгоритма:
«Компьютерная симуляция цветности дихроматов» Бреттеля, Вьено и Моллона (1997)
«Цветовые карты цифрового видео для проверки разборчивости дисплеев по дихроматам» Вьено, Бреттел и Моллон (1999)
Другой допустимый вариант - использовать предварительно вычисленные матрицы из «Физиологической модели для моделирования дефицита цветового зрения» Machado et al. (2009). Они доступны на их сайте .
Пожалуйста, не используйте больше «ColorMatrix» с colorjack.com, сам автор сказал, что они очень неточные. Я написал целую статью, сравнивающую моделирование дальтонизма с открытым исходным кодом, если вам нужны более подробные сведения.