Форум программистов, компьютерный форум, киберфорум
Математика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 3 / 4
Регистрация: 11.10.2015
Сообщений: 156
1

Замена цветов изображения на максимально близкие из данного набора

26.01.2019, 12:53. Показов 1123. Ответов 4

Author24 — интернет-сервис помощи студентам
У меня есть картинка, как мне нарисовать ее цветами, которые есть в моем наборе? Думал, что можно сделать что-то вроде diff = (r1 - r2)^2 + (g1 - g2)^2 + (b1 - b2)^2, с каким цветом эта "разница" минимальна, тот и выбирается для соответствующего пикселя. В теории это казалось отличной идеей, на практике же дела обстоят иначе: при конвертировании изображения получается дичь дикая, отдаленно напоминающая первоначальное изображение. Хочу, чтобы новая картинка была похожа на начальную
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2019, 12:53
Ответы с готовыми решениями:

Создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета
Необходимо создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее...

Найти максимально количество цветов в палитре
Рисунок размером 736 на 128 пикселей, занимает в памяти 69 Кбайт. Найти максимально возможное...

Найдите сумму квадратов чисел из введённого набора от данного номера до данного номера
Найдите сумму квадратов чисел из введённого набора от данного номера до данного номера. Например,...

Найдите сумму чисел из введённого набора от данного номера до данного номера
Например, если введены номера «2 4», то нужно найти сумму чисел в наборе со 2-го по 4-е. Формат...

4
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
26.01.2019, 17:35 2
Scriptozaur, можно попробовать сумму модулей.
0
Эксперт по математике/физике
4166 / 3038 / 914
Регистрация: 19.11.2012
Сообщений: 6,182
27.01.2019, 08:03 3
Цитата Сообщение от Scriptozaur Посмотреть сообщение
В теории это казалось отличной идеей,
Попробуйте взять минимум у взвешенной суммы квадратов. Коэффициенты у квадратов подберите экспериментально.
0
1487 / 1414 / 240
Регистрация: 19.02.2010
Сообщений: 3,916
27.01.2019, 22:39 4
Scriptozaur, https://ru.wikipedia.org/wiki/Дизеринг
А конкретнее - https://en.wikipedia.org/wiki/... _dithering

Идея в том, чтобы погрешности (разницы между исходным и преобразованным цветом) не выбрасывались в никуда - а распределялись по соседним пикселам перед их конвертацией. Т.е. если в текущем пикселе недодали или переложили какого-то цвета - то в соседних желательно добавить или убрать (чтобы "в среднем по больнице" стало как можно ближе к исходному).
Каждый компонент цвета (при цветном изображении) обрабатывается по-отдельности (указанная страничка англоязычной википедии этот факт явно не проговаривает).

Из синонимов (вдобавок к наивной транслитерации "dithering" в "дизеринг") - "псевдосмешение цветов" на русском и "error diffusion" на английском. Т.е. можно и эти запросы погуглить при необходимости - но вряд ли найдётся что-то существенно иное по алгоритмике.
1
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
28.01.2019, 00:11 5
Может так?
Суть заменить линейную функцию от цвета канала кусочной аппроксимацией.
255 делим на Количество цветов в таблице.
Например 3 цвета
Если R от 0 до 85 то R=12
Если R от 85 до 170 то R=45
Если R от 170 до 255 то R=76
Тоже для других каналов.

Добавлено через 6 минут
Но так будут еще цвета не из таблицы а ближайшие.
Чтобы только заданные нужна карта градиента. Яркость канала перевести в цвет(R,G,B)
3 цвета:
Если R от 0 до 85 то R=12 G=43 B= 54
Если R от 85 до 170 то R=45 G=53 B= 76
Если R от 170 до 255 то R=76 G=75 B= 23

Добавлено через 3 минуты
А если нет цвета R пикселя? =)).
1)перевести RGB кадра в оттенки серого, формул навалом.
2)карта градиента, перевести яркость пикселя в цвет RGB
0
28.01.2019, 00:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2019, 00:11
Помогаю со студенческими работами здесь

Найдите сумму чисел из введённого набора от данного номера до данного номера
Найдите сумму чисел из введённого набора от данного номера до данного номера. Например, если...

Как выбрать множество максимально отличающихся друг от друга цветов?
На одной шкале нужно построить несколько десятков графиков. Столкнулся с проблемой автоматического...

Из набора случайных целых чисел выбрать несколько, сумма которых максимально возможно близка к N
Есть таблица, в первой колонке - ID, во второй ее вес - натуральное число. Есть некоторая заранее...

Вывести K-e степени чисел из данного набора
паскальАБС 36. Даны целые числа K, N и набор из N вещественных чисел: A1, A2, ..., AN. Вывести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru