Название цвета -> число [?]
RGB, только по битикам перемешанные. Маска rgbrgbrgbrgbrgbrgbrgbrgbrgbrgbrgbrgbrgbrgbrgbrgb
Вот тут много годных картинок и букв с пищей для размышлений:
http://en.wikipedia.org/wiki/HSL_and_HSV
Обычно подобную задачу решают тем, что продолжают цвет представлять тройкой чисел, просто вводят удобную функцию расстояния между двумя цветами. Как именно это делать - зависит от подробностей задачи, от того, какие оттенки считать похожими, а какие разными.
спасибо за идею (я думал насчёт какой-нибудь функции от hsb а есть ли готовые компоненты для парсинга цветов? Наверняка ведь есть. Если есть выбор, то лучше на C#, но в принципе, язык не важен.
Интересующая функция f(color1, color2 принимающая действительные значения (например, на отрезке [0,1] должна просто показывать правдоподобие того, что два значения color1 и color2 были приписаны одному и тому же цвету. Сами значения color могут быть не обязательно действительным — например, тройка чисел вполне сойдёт, если для неё удастся написать подходящую f.
похоже, я понял, как надо сформулировать задачу, и легко нагуглил (по крайней мере, пока мне так кажется). Меня интересовал адекватный способ измерения цветового расстояния, и для этого есть масса решений: например, LAB — это что-то смахивающее на нужное.
http://ru.wikipedia.org/wiki/FITS
там есть поддержка 64 битных изображений, причём они "черно белые" ( т.е. 8 байт/пиксель и при это только для одного "канала", а каналов может быть сколько множество )
меня в своё время очень порадовало, что в одном файле может храниться несколько цветовых каналов, при чем необязательно RGB ( в моём случае было 4 канала, 3 - соответствующих разным частотам, и 4-й - соответствующий суммарной интенсивности ( не путать с яркостью ) )
есть такой формат - там есть поддержка 64 битных изображений, причём они "черно белые" ( т.е. 8 байт/пиксель и при это только для одного "канала", а каналов может быть сколько множество )
меня в своё время очень порадовало, что в одном файле может храниться несколько цветовых каналов, при чем необязательно RGB ( в моём случае было 4 канала, 3 - соответствующих разным частотам, и 4-й - соответствующий суммарной интенсивности ( не путать с яркостью ) )
Оставить комментарий
Inflict84
Хотелось бы вот чего. Выяснять, есть ли в строке подстроки типа green, pink, и если есть, присвоить какое-нибудь значение величине color.Так, чтобы
color(green) != color(blue
color(pink) == color(light-red) ≈ color(red)
color(white) ≈ color(off-white) ≈ color(gray) ≈ color(dark-gray но color(white) != color (dark-gray)
Есть ли стандартные решения подобных задач?
Спасибо.