Редактирование Текста Фотографии С Помощью Gimp

Здесь я предложу несколько вариантов решения этой проблемы.

Основная проблема фотографий — неравномерная освещенность страницы, когда в центре яркость больше, а по краям меньше или что-то в этом роде.

Также часто необходимо повысить контрастность текста по сравнению со страницей.

При обычной коррекции Levels некоторые части изображения переэкспонированы, а некоторые, наоборот, слишком темные.

Все методы более или менее решают эти проблемы.

В качестве материала для обработки я взял вот эту страницу (предварительно отрезав всё лишнее):

Редактирование текста фотографии с помощью Gimp

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



Метод разделения слоев

  1. Создайте новый слой с копией изображения.

  2. Размытие нового слоя по Гауссу до тех пор, пока он не станет относительно однородным, когда текст почти не оставляет следов, но заметна разница в яркости по углам и в центре.

    (Фильтры -> Размытие -> Размытие по Гауссу: Радиус размытия - 100)

  3. Назначьте режим этого слоя на разделение (Окно Слои: Режим - Разделить)
  4. Объединить слои (Слои -> объединить)


Редактирование текста фотографии с помощью Gimp



Редактирование текста фотографии с помощью Gimp



Метод обнаружения края

  1. Размытие фона по Гауссу.

    Выбираем дельту, чтобы текст не размывался, думаю радиус размытия не стоит ставить больше 10. (Фильтры -> Размытие -> Выборочное размытие по Гауссу: Дельта - 19; Радиус - 15)

  2. Выберите ребра, используя собственный метод Лапласа (Фильтры -> Обнаружение кромок -> Край.

    : Алгоритм: Лапласа; Количество: 2)

  3. Если хотите, инвертируйте цвет изображения


Редактирование текста фотографии с помощью Gimp



Редактирование текста фотографии с помощью Gimp



Редактирование текста фотографии с помощью Gimp



Длинный метод с отдельной коррекцией яркости

  1. Размытие фона по Гауссу.

    Выбираем дельту, чтобы текст не размывался, думаю радиус размытия не стоит ставить больше 10. (Фильтры -> Размытие -> Выборочное размытие по Гауссу: Дельта - 19; Радиус - 15)

  2. Создайте новый слой с копией изображения.

  3. Размытие нового слоя с помощью Gaussian до тех пор, пока он не станет относительно равномерным, когда текст почти не оставляет следов, но заметна разница в яркости по углам и центру (Фильтры -> Размытие -> Размытие по Гауссу: Радиус размытия - 100) (Фильтры - > Размытие -> Размытие по Гауссу: Радиус размытия - 100)
  4. Установите режим этого слоя на «Яркость» и установите плотность на 50% (окно «Слои»: «Режим» — «Значение»; «Непрозрачность»: 50).

  5. Объединить слои (Слои -> объединить)
  6. Обработка изображения: Цвет -> Авто -> Растянуть HSV.


Редактирование текста фотографии с помощью Gimp



Редактирование текста фотографии с помощью Gimp



Относительная читаемость также может быть достигнута с помощью пакета ImageMagic.

(Никакого отношения к GIMP, просто альтернатива) Convert .

/1_original.jpg -colorspace grey \( +clone -blur 10x65535 \) -compose subtract -composite -threshold 50% .

/im4.jpg

Редактирование текста фотографии с помощью Gimp



Редактирование текста фотографии с помощью Gimp



Автоматизация

Муркт Я разобрался с Python-Fu и написал скрипт, который может всё это автоматизировать.

Пишем в консоль следующее (Фильтры -> Python-Fu -> Консоль):

 
 from gimpfu import *
 
 def textify_divide(img):
    ly2 = img.active_layer.copy()
    img.add_layer(ly2)
    pdb.plug_in_gauss_rle(img, ly2, 100, 1, 1)
    ly2.mode = DIVIDE_MODE
    img.flatten()
 
 def textify_edges(img, radius=10, max_delta=25, amount=2):
    ly = pdb.gimp_image_get_active_layer(img)
    pdb.plug_in_sel_gauss(img, ly, radius, max_delta)
    pdb.plug_in_edge(img, ly, amount, 1, 5)
    pdb.gimp_invert(ly)
 
 
Теперь вы можете обрабатывать все открытые изображения из одной консоли с помощью команды:
 
 [textify_edges(x) for x in gimp.image_list()]
 
 
Вы также можете попробовать использовать другие функции Python-Fu, например открытие файлов и т. д.:
 
 image = pdb.file_jpeg_load(filename, raw_filename)
 image = pdb.file_png_load(filename, raw_filename)
 
Теги: #канитель #Чулан
Вместе с данным постом часто просматривают: