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

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

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

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

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

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

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

Ответы (5)

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

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

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

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

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

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

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

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

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

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

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

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

Комикс с готовым результатом

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

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

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

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

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

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

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

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

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

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

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

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

Похоже на плагин Resynthesizer для GIMP (или Content Aware в Photoshop) .