Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм замены ("инвертирования") цветов картинки / 6 сообщений из 6, страница 1 из 1
10.10.2012, 15:30
    #37991903
Алгоритм замены ("инвертирования") цветов картинки
Добрый день.

Возник вопрос, предположим существует картинка:

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

Особенность картинки в том что на границе изображения и фона существует "переход", "сглаживание", "называйте как угодно".




Есть идеи?

Язык C#, но это не принципиально, мне нужен сам алгоритм.
Возможно наложение маски? Но тут я вообще не понимаю как эта маска должна выглядеть.

-
Proud Celestron Astromaster 130EQ user
...
Рейтинг: 0 / 0
10.10.2012, 15:33
    #37991913
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм замены ("инвертирования") цветов картинки
Осадчук Павел,

Что значит "инвертировать", в Вашей задаче? На исходной картинке три цвета: чёрный, белый, зелёный. Чёрный и белый на выходе заменены зелёным, как это получилось?
...
Рейтинг: 0 / 0
10.10.2012, 15:36
    #37991924
Алгоритм замены ("инвертирования") цветов картинки
Abstraction, забудьте про окантовку иконки, меня интересует только внутренняя часть.
"инвертировать" - неверный термин, тут не подходит простая замена цвета пикселя на "противоположный"

строго говоря картинка двухцветная - белое содержание, зеленый фон и наоборот.
но между изображением и фоном есть переход - и вот с ним проблема. мне кажется вычленив 2 цвета можно отнимая или прибавляя компоненты цвета пикселя получить желаемый эффект, но что-то не могу сообразить как
...
Рейтинг: 0 / 0
10.10.2012, 15:42
    #37991934
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм замены ("инвертирования") цветов картинки
Осадчук ПавелAbstraction, забудьте про окантовку иконки, меня интересует только внутренняя часть.
"инвертировать" - неверный термин, тут не подходит простая замена цвета пикселя на "противоположный"

строго говоря картинка двухцветная - белое содержание, зеленый фон и наоборот.
но между изображением и фоном есть переход - и вот с ним проблема. мне кажется вычленив 2 цвета можно отнимая или прибавляя компоненты цвета пикселя получить желаемый эффект, но что-то не могу сообразить какДо тех пор, пока картинка двухцветная, нам нужно выловить "предельные" цвета (r 1 , g 1 , b 1 ) и (r 2 , g 2 , b 2 ). Полагаю, в первом приближении можно обойтись без преобразований в HSB-систему и тупо преобразовывать (r, g, b) -> (r 1 +r 2 -r, g 1 +g 2 -g, b 1 +b 2 -b).
...
Рейтинг: 0 / 0
10.10.2012, 15:57
    #37991980
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм замены ("инвертирования") цветов картинки
Непонятно, как чёрный стал зелёным. По какой формуле?
...
Рейтинг: 0 / 0
10.10.2012, 21:15
    #37992577
Алгоритм замены ("инвертирования") цветов картинки
Abstraction, благодарю, все работает отлично.

Правда все равно пришлось использовать HSB для обнаружения "предельных" цветов. Первый цвет всегда белый, так что по максимальному S беру второй цвет.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм замены ("инвертирования") цветов картинки / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]