top of page

Методы ручной сегментации

Постановка задачи

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

Получив очищенные слои текста и иллюстраций, мы можем сжать их в DjVu-файл. 
Этот процесс описан, в частности, в документации программы "Djvu Small Mod" 
(Параграфы "Ручная сегментация" и "Малоцветное кодирование") 
Такова постановка задачи, далее - трюки. 

Трюк: использование "Save for Web" в Фотошопе.

Задача: Очистка текста от цветовых шумов и минимизация количества цветов в тексте.

 

Способ достаточно простой и быстрый, годится для простых случаев. 
Грузим изображение в Фотошоп, выбираем в меню фичу "Save for Web". 
В настройках следует выбрать: 
Формат = Gif 
Dither algorithm = No dither (важно!) 
Задать выходное количество цветов (подсчитать вручную) 
Поиграться с опцией "Color reduction algorithm" 
После сохранения файла, имеет смысл опять открыть его и очистить от артефактов. 
И убедиться, что белый фон имеет чисто-белый цвет RGB={255,255,255}. 
Последнее важно, если предполагается подклеивать фон с иллюстрациями, т.к. только чисто-белый цвет считается прозрачным. 
 

Трюк: Подборка видео-уроков от SilverKtulhu для малоцветного кодирования.

Задача: Очистка текста от цветовых шумов и минимизация количества цветов в тексте.

 

Урок 1. Обработка страниц через CMYK.
Урок 2. Обработка малоцвета.
Урок 3. Обработка малоцветных книг через CMYK и Adobe InDesign
 

Трюк: Подборка видео-уроков от SilverKtulhu для разделённых сканов.

Задача: Разделение слоёв.

 

Урок 1. InDesign. Метод разделённых сканов.
Урок 2. Сборка страниц.

Трюк: использование промежуточного DjVu для разделения слоёв.

Задача: Отделение текста от фона и вынесение текста в отдельное изображение.

 

Промежуточный DjVu-файл отличается тем, что может иметь запорченный фон и сколько угодно мусора в слое текста. В обычной ситуации это считалось бы браком, но для промежуточного DjVu это нормально. 
Единственное требование к промежуточному DjVu - чтобы он содержал все нужные элементы текста. Вот пример такого промежуточного DjVu: 
 

Промежуточный DjVu декодируется обратно в формат изображения, после чего чистится в Фотошопе. Чистить такое изображение намного легче, чем оригинальное. Отчищенное от мусора изображение очищается от цветовых шумов (как для малоцветного кодирования) и используется в качестве слоя текста. 
Иногда может потребоваться не один, а несколько промежуточных DjVu-файлов. Например, если изображение содержит и чёрный и белый текст. Чёрный текст требует сжатия с параметром "Негативность" < 50, Белый текст - требует "Негативность" > 50. Решение - сделать два промежуточных DjVu и соединить их в Фотошопе. 
Типовые параметры для кодирования промежуточного DjVu: 

Залить фон = Белым (убить фон)


# Настройки текста: (максимальное качество)
Детализация = Без потерь
Качество цвета = 100

Прореживание = 1

# Основные настройки сегментера:
Фильтр формы = Всё в текст
Негативность = ... (в зависимости от цвета текста)


# Дополнительные настройки сегментера (если потребуется):
Подавить полутона = 0 (усиливает чувствительность к контрасту)
Размер отрисовки = 1 (усиливает чувствительность к контрасту)
Пиксельный фильтр = 25 (усиливает чувствительность к мелким деталям)
Порог = 25 (ужирняет тонкие линии)
Порог = 90 (утончает жирные линии)

Размер блока = 32 (ужирняет тонкие линии)
Размер блока = 8 (утончает жирные линии)

Трюк: Автоматическая очистка фона.

Задача: Отделение фона от текста и вынесение фона в отдельное изображение.

 

Вместо того, чтобы чистить фон от текста, берём в качестве фона оригинальное изображение. В настройках ручной сегментации в программе "DjVu Small Mod" ставим параметр "Метод сжатия" = "fi_sep". При этом фон под текстом будет очищен автоматически.Автомат работает несколько хуже, чем можно сделать вручную. Размер файла получается на 10-20% больше. Но качество не страдает, т.к. остатки текста в фоне скрыты под текстовым слоем.

Трюк: Решение проблемы белого шрифта

Задача: Отделение текста от фона и вынесение текста в отдельное изображение.

 

Сделать чисто белый шрифт достаточно сложно, т.к. при кодировании белый цвет считается прозрачным. 
Самое простое решение - сделать шрифт почти белым, RGB={254,254,254}. Глаз разницу не замечает, а для программы этого достаточно, чтобы отличить белое от прозрачного.

bottom of page