|
|
|
Алгоритм замены ("инвертирования") цветов картинки
|
|||
|---|---|---|---|
|
#18+
Добрый день. Возник вопрос, предположим существует картинка: необходимо инвертировать (заменить) цвета фона и изображения чтобы получить такую картинку Особенность картинки в том что на границе изображения и фона существует "переход", "сглаживание", "называйте как угодно". Есть идеи? Язык C#, но это не принципиально, мне нужен сам алгоритм. Возможно наложение маски? Но тут я вообще не понимаю как эта маска должна выглядеть. - Proud Celestron Astromaster 130EQ user ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 15:30 |
|
||
|
Алгоритм замены ("инвертирования") цветов картинки
|
|||
|---|---|---|---|
|
#18+
Осадчук Павел, Что значит "инвертировать", в Вашей задаче? На исходной картинке три цвета: чёрный, белый, зелёный. Чёрный и белый на выходе заменены зелёным, как это получилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 15:33 |
|
||
|
Алгоритм замены ("инвертирования") цветов картинки
|
|||
|---|---|---|---|
|
#18+
Abstraction, забудьте про окантовку иконки, меня интересует только внутренняя часть. "инвертировать" - неверный термин, тут не подходит простая замена цвета пикселя на "противоположный" строго говоря картинка двухцветная - белое содержание, зеленый фон и наоборот. но между изображением и фоном есть переход - и вот с ним проблема. мне кажется вычленив 2 цвета можно отнимая или прибавляя компоненты цвета пикселя получить желаемый эффект, но что-то не могу сообразить как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 15:36 |
|
||
|
Алгоритм замены ("инвертирования") цветов картинки
|
|||
|---|---|---|---|
|
#18+
Осадчук Павел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). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 15:42 |
|
||
|
Алгоритм замены ("инвертирования") цветов картинки
|
|||
|---|---|---|---|
|
#18+
Непонятно, как чёрный стал зелёным. По какой формуле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 15:57 |
|
||
|
Алгоритм замены ("инвертирования") цветов картинки
|
|||
|---|---|---|---|
|
#18+
Abstraction, благодарю, все работает отлично. Правда все равно пришлось использовать HSB для обнаружения "предельных" цветов. Первый цвет всегда белый, так что по максимальному S беру второй цвет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 21:15 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1342099]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
8ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 413ms |

| 0 / 0 |
