Страница 5 из 5

Re: Векторный рисунок в XaraX

Добавлено: 12 май 2013, 14:15
Revent
DrSchmallhausen писал(а):
Revent писал(а):Почему?
из-за его крутейших возможностей по написанию подключаемых модулей
Ясно.

Re: Векторный рисунок в XaraX

Добавлено: 12 май 2013, 18:51
Shnatsel
DrSchmallhausen писал(а): Будучи созданным за пару часов (что важно, без предварительных знаний целевого языка), он предназначен для удаления с произвольной картинки водяного знака DeviantArt.

Как можно видеть, о существовании водяного знака теперь напоминают разве что JPEG-артефакты, оставшиеся вокруг места его размещения.
:shock:
Это довольно сложный водяной знак, удаление такого - задача непростая... Athari, помнится, писал для удаления водяных знаков специализированную программу почти с нуля, и результаты были не столь впечатляющие. Респект!

А лично я в GIMP обожаю его алгоритмы интерполяции. Даже в 2.6 есть интерполяция по кардинальному синусу с фильтрацией Ланцоша, дающая очень чёткую картинку. Ни в каких фотошопах и прочей "профессиональной" фигне ничего подобного нет.

А алгоритмы из нестабильной версии вообще не имеют аналогов в мире, кроме их более ранних версий в imagemagic, написанных тем же разработчиком. Я про них даже в блог писал.

Re: Векторный рисунок в XaraX

Добавлено: 12 май 2013, 19:37
DrSchmallhausen
Shnatsel, к слову об аналогах. У нас тут в соседней лабе разрабатывали одно время метод пересчёта, основанный на регуляризации по Тихонову. Сам я, к сожалению, не сильно в теме, поскольку всё-таки системщик, и довольно посредственно разбираюсь в принципах обработки изображений — однако, может быть ты в курсе, не задумывались ли авторы GIMP над возможностью реализации такого фильтра? Наверняка говорить не буду — но думаю что, в случае чего, смогу достать сам текст научной статьи. Боюсь только, что он будет на русском.
Только в отличие от представленного в твоём посте, «тихоновский» фильтр работает на повышение размера, а не на понижение — почему, собственно, и спросил.

P.S. и, да — стиралка водяного знака основана на банальном вычитании по шаблону, которое возможно в силу обратимости формулы альфа-смешения, так что здесь нет никаких фокусов :roll:
Athari же, как я предполагаю, пытался разработать метод удаления произвольной метки, а не очистки произвольного изображения от заранее заданной (по крайней мере, бóльшей своей частью) метки.

Re: Векторный рисунок в XaraX

Добавлено: 12 май 2013, 20:38
Shnatsel
Неужели DA использует простой альфа-блендинг, да ещё и без искусственных "срывов"? Мда, ну и "защита" :facepalm:
Реверс такого уровня делает backtestground в целиком автоматическом режиме для совершенно других целей.
Athari делал более мощный реверс, с компенсацией умножения и прочего хитрого блендинга.

Про регуляризацию по Тихонову я впервые слышу. И я, увы, пока имею довольно поверхностное представление о математике такого уровня. Могу только сказать, что этот конкретный автор её в контексте GIMP пока не упоминал.

Кстати, вот интересный способ изменения размера изображений, реализованный в GIMP (в виде модуля), ImageMagick и отчасти в Photoshop начиная с CS4: http://youtu.be/6NcIJXTlugc
У меня давал очень впечатляющие результаты, например: было, стало.

Re: Векторный рисунок в XaraX

Добавлено: 12 май 2013, 21:00
DrSchmallhausen
Shnatsel писал(а):Мда, ну и "защита" :facepalm:
Ну, они берут в основном не этим, а тем, что нижняя строка в метке уникальна для каждого автора. И вот как раз для её удаления пришлось кропотливо набирать литерную базу а кернинг вообще приходится делать вручную до сих пор :D
Shnatsel писал(а):без искусственных "срывов"
К сожалению, не понял, что имеется в виду.

Re: Векторный рисунок в XaraX

Добавлено: 13 май 2013, 10:59
Revent
Shnatsel писал(а): интерполяция по кардинальному синусу с фильтрацией Ланцоша
Круто :shock: . Я теперь два дня заснуть не смогу.

Re: Векторный рисунок в XaraX

Добавлено: 13 май 2013, 16:12
Shnatsel
DrSchmallhausen писал(а):
Shnatsel писал(а):без искусственных "срывов"
К сожалению, не понял, что имеется в виду.
Извиняюсь, я некорректно выразился. Имеется в виду, что операция альфа-смешивания полностью обратима только если существует заимооднозначное соответствие цвета "до" и цвета "после". Это не выполняется, например, если наложить тëмный водяной знак на тëмную картинку: любой достаточно тëмный пиксель сорвëтся в #000000 и восстановить, какой именно цвет там был, простым вычитанием будет невозможно.
Картинка не обязательно должна быть тëмной - для невозможности снятия водяного знака простым вычитанием достаточно срыва по одному каналу. В некоторых случаях такие потери можно компенсировать, заимствуя сорванные значения из ближайших нетронутых водяным знаком пикселей с близкими значениями по нетронутому каналу, но для этого нужен хотя бы один нетронутый канал. Реализаций этой идеи я пока не видел, но это не значит, что их не существует.
Если ни одного нетронутого канала нет, придëтся использовать что-то в духе гимпового модуля Resynthesizer.

Такие срывы можно вызвать не на каждом изображении без серьëзной визуальной деградации, но на многих можно, накладывая водяной знак на наиболее склонные к срывам участки или варьируя прозрачность водяного знака. DeviantArt этого не делает, поэтому простое вычитание в большинстве случаев работает.

Re: Векторный рисунок в XaraX

Добавлено: 13 май 2013, 20:09
DrSchmallhausen
Shnatsel писал(а):любой достаточно тëмный пиксель сорвëтся в #000000 и восстановить, какой именно цвет там был, простым вычитанием будет невозможно
Не совсем верно.

Изображение
— исходя из формулы смешения (где z — любой из цветовых каналов, a — альфаканал, С — пиксель результата смешения, B — пиксель непрозрачного задника, F — пиксель полупрозрачного слоя), ошибки здесь могут возникнуть только из-за дискретизации, когда вещественное в диапазоне [0.0; 1.0] приходится квантовать на 256 возможных значений [0; 255].
В случае с водяным знаком это не так страшно, поскольку они редко когда имеют прозрачность более 128, а следовательно после восстановления у результирующей картинки в местах под ним останется 127 градаций цвета на канал, что «на глаз» очень мало где заметно. И цвет самого водяного знака при этом, кстати, не важен, поскольку потеря точности произойдёт в любом случае — будь то затемнение до 0.0, засветление до 1.0 или любое другое приведение канала к 256/(1 + a) уровням яркости :roll:
А если же «водяной» знак имеет прозрачность от 129 и выше — то он уже ни фига не водяной, поскольку виден лучше, чем то, что под ним…

Кстати, раздельноканальных знаков пока что ни разу вживую не встречал.
Да и как-то не верится, что они найдут сколько-нибудь широкое применение — в глазах же рябить будет :hmm:
И, да — сдаётся мне, что это всё равно не поможет: отдельный канал можно с неплохой точностью восстановить, вычтя из изображения метку, помимо RGB, в каком-нибудь YIQ-пространстве, а потом составив систему трёх уравнений с тремя неизвестными.

Re: Векторный рисунок в XaraX

Добавлено: 14 май 2013, 07:28
Revent
Нет, ну вы реальные спецы. Удачи вам в удалении водяных знаков с арта девиантарта.

Re: Векторный рисунок в XaraX

Добавлено: 09 дек 2014, 21:54
Shnatsel
Я наконец-то нашёл короткое и ясное объяснение, как сделать контур варьирующейся толщины в Inkscape: http://tucsonlabs.com/2008/10/24/brushes-in-inkscape/

Вооружившись этим знанием, можно использовать бесплатный Inkscape вместо крякнутой Xara. При обводке разница между редакторами вряд ли будет заметна.