Какой самый эффективный способ «зачистить» старые комические воздушные шарики со словами, сохранив при этом текстуру бумаги?

24

Я беру очень старые (1940-х и 50-х годов) комиксы и пытаюсь удалить текст из некоторых их всплывающих подсказок. Я не хочу просто стереть их содержимое в чистый пробел, поскольку цвет и текстура бумаги не чисто белые; он слегка пожелтевший и зернистый (качество бумаги тогда не было хорошим). То, что я хотел бы закончить, - то, что похоже на оригинальное сканирование, как будто комикс никогда не был написан.

В данный момент я пытаюсь найти максимально возможное пустое пространство внутри данного всплывающего окна с текстом, скопировать лучший квадрат или кружок, который я могу разместить внутри него, и несколько раз вставить этот квадрат или кружок, чтобы покрыть текст. Это кропотливо, а также приводит к конечному эффекту, который немного странен сам по себе, поскольку у меня один и тот же кусочек текстуры, повторяющийся снова и снова.

Я попробовал «смазать» результаты, но это дает мне нечто странное. Что ты предлагаешь?

В настоящее время использую Seashore на Mac, но я также мог бы использовать GIMP.

РЕДАКТИРОВАТЬ: образец комикса прилагается по запросу. Обратите внимание, что бумага в надписях и надписях имеет цвет и текстуру, которые я хотел бы сохранить.

Образец комикса

JeanSibelius
источник

Ответы:

19

Вместе с Gimp поставляется плагин Resynthesize вместе со скриптом Python Heal Selection . В Linux плагин содержится в пакете gimp-plugin-registry .

После выбора области с помощью инструмента выбора:

введите описание изображения здесь

Мы можем "исцелить" этот выбор из "Фильтры> Улучшение> Выбор исцеления ..." . Здесь я сделал случайное исцеление с 10 пикселями от окружения:

введите описание изображения здесь

Takkat
источник
2
+1, это то, что я бы предложил. Один из советов, который стоит отметить, заключается в том, что, если вы хотите сделать это для большого количества текста одновременно, полезно начать с создания небольшого отдельного слоя, заполненного текстурой чистого листа бумаги, а затем использовать его в качестве источника текстуры. Это ускоряет процесс синтеза (поскольку будет меньше отклонений) и гарантирует, что он случайно не скопирует фрагменты окружающего рисунка. Кроме того, полный плагин (в отличие от сценария «выбор исцеления») имеет множество настроек, с которыми вы можете поиграть, чтобы скорректировать результаты.
Ильмари Каронен
2
Также, если это возможно, сделайте это перед сохранением изображений в формате JPEG. На приведенных выше примерах изображений вы можете видеть, что, хотя сам текст пропал, некоторые из артефактов сжатия вокруг него все еще присутствуют. Вы получите гораздо лучшие результаты с меньшими трудностями, если вместо этого сделаете это с необработанными несжатыми сканами.
Ильмари Каронен
13

Я бы подошел к этому аналогично Горацио, но я бы, вероятно, максимально сохранил исходное изображение в такте (при условии, что вы хотите сохранить его).

Я бы создал текстуру, подобную бумаге:

текстура шума

Это просто текстура шума на фоне тонкого градиента с некоторыми искажениями по горизонтали и вертикали.

Вы заметите некоторые цветовые вариации, которые я применил, используя инструменты «Зажигание» и «Уклонение», чтобы помочь им вписаться в существующую иллюстрацию, поскольку цвет не одинаков во всем комиксе.

Я использовал обтравочную маску с очень мягкими краями вокруг удаленного текста, чтобы получить такой результат:

Готовый результат комикса

Я использовал Photoshop для этого, но те же принципы должны применяться в GIMP.

Johnb
источник
1
Это хороший результат. Пузырьковые линии действуют как визуальный барьер. Вроде как изменение фасета на стене, когда у вас есть краска, которая не совсем совпадает.
Горацио
1
Если бы я сделал это, я бы предложил сделать как минимум 5 или 6 различных текстур с небольшими различиями в цветах, ухудшении цвета и пятнах, чтобы это выглядело немного более естественным, чем одинаковая текстура на каждой странице (при условии, что вы делаете несколько страниц)
Райан
Моим первым инстинктом было начать с 128 серого и запустить на нем разностное облако, корректируя уровни впоследствии, чтобы избежать высокой контрастности (а затем шума и оттенка с цветом). Я подозреваю, что идея JohnB - лучший результат.
Горацио
@horatio хорошее наблюдение с «визуальным барьером». Вы можете определенно обнаружить, что в моем примере произошли изменения, если вы посмотрите достаточно внимательно. Я подозреваю, что а) что никто не будет так внимательно присматривать и б) добавление нового текста к пузырькам
отвлечет
@ Райан хорошая идея, и ее очень просто создать, поэтому можно быстро создавать различные текстуры
JohnB
5

Поскольку вы редактируете текст (например, радикально изменяете оригинал), один из способов сделать это - обмануть:

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

Горацио
источник
+1. вместо того, чтобы бесконечно возиться с крошечной секцией, это, вероятно, будет наиболее эффективным и простым. Есть масса текстур, которые вы можете найти или сделать, которые будут делать эту работу.
Benteh
Один из недостатков в моем ответе (: P) заключается в том, что вы рискуете обесцветить все цвета. Я еще не думал об этом.
Горацио
Идея здравая, хотя.
Benteh
3

Копирование и вставка дадут наилучшие результаты, не портя текстуру и цвет этого конкретного шарика. Обычно я запускаю несколько раз довольно маленькую копию, затем объединяю слои (есть ли у Seashore слои?), Но останавливаюсь непосредственно перед оригиналом. Тогда у вас есть большой образец для продолжения работы. Прежде чем продолжить копирование и вставку этого слоя, смягчите края, и это исправит странные результаты, которые вы получаете. Я просто использую большой мягкий ластик. Затем возобновите копирование и вставку, выравнивая при необходимости и смягчая при необходимости.

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

Конечно, если у Seashore нет слоев, я бы сказал, чтобы получить Gimp.

Райан
источник
для «удаления излишков» вы можете просто иметь одну большую текстуру размером с изображение, а затем применить маску слоя, редактируя маску слоя везде, где вы хотите покрыть текст.
Горацио
3

Если вы любите приключения, вы можете реализовать алгоритм синтеза текстур, описанный здесь.

он заполняет пиксели теми, которые имеют похожее соседство, создавая почти бесшовное расширение текстуры или заполняя отверстия, вот несколько примеров введите описание изображения здесь

Gimp поддерживает сценарии, так что вы можете написать плагин для этого (я планировал сделать это сам, но потом отвлекся. Ваш вопрос снова напомнил мне об этом)

DenDenDo
источник
2
Это похоже на плагин Resynthesizer для GIMP (или Content Aware в Photoshop)
JohnB