Цифровое "книгопечатание"

Пошаговое руководство по оцифровке книг. Часть 2

(Продолжение. Начало в №34)


Этап второй: ретушь и "облагораживание".

Наверное, это самый важный этап предварительной обработки картинок, от которого напрямую зависит качество будущей книги. Первым делом стоит упорядочить освещённость страниц и устранить маленькие недочёты (перекос страниц, мелкий мусор и появившиеся от разворота книги тени), а также привести страницы к чёрно-белому, бинарному, состоянию с наименьшими потерями в качестве. Нам понадобятся следующие инструменты: программа ScanKromsator v5.6 Full от Bolega (djvu-soft0001.nxt.ru/scan_kromsator_v5_6a_full.rar) и Book Restorer v4.1 (doronin.nnov.ru/djvu/BR41en.rar). Имеются, конечно, и другие разработки схожей функциональности (вроде ImageProcessor 4.5 (djvu-3soft.narod.ru/recogniform_image_processor_4_5_bin.rar) или CPC Tool v5.21 (djvu-4soft.narod.ru/cpc_tool_5_21.rar)), но они имеют слабую функциональность, да ещё и глючат.

Сначала нужно развернуть все странички на 90° (делать это умеют даже самые простые программы, я рекомендую IrfanView в режиме "Пакетное преобразование"). Для устранения световых дефектов вполне сгодится программа Book Restorer. В меню Book > New задаём название проекта книги и её месторасположение. Далее в меню Insert выбираем пункт Import files и добавляем нужные нам картинки (я делаю так - выбираю последнюю по порядковому номеру картинку, зажимаю Shift и щёлкаю по первой картинке в списке), которые сразу начинают отображаться в виде эскизов. Одновременно активным становится диалоговое меню Restoration, которое нам и нужно. Итак, щёлкаем по первой в списке странице и в меню инструментов Restoration выбираем пункт Lighting correction (двойным щелчком). Перед нами открывается диалоговое окно с двумя закладками: Lighting correction 1D и Lighting correction 2D. Опытным путём установлено, что лучший результат даёт закладка коррекции по двум измерениям, значит, так и будем делать.

Проверяем наличие галочки Automatic в пункте Threshold, а вот ползунком в пункте Sensitivity of the processing регулируем задаваемый уровень (увидеть результат перед применением к странице можно, нажав кнопку Preview). Если полученный эффект полностью удовлетворяет вашим амбициям - смело жмите "ОК" и переходите к следующему пункту.

А следующий пункт - преобразование картинки из градаций серого цвета в чёрно-белую палитру. Для этой цели будем использовать инструмент Binarization. В зависимости от алгоритма преобразования, бинаризация бывает пороговой, адаптивной, энтропийной и тому подобное. В нашем случае имеет место первый вариант, а именно - бинаризация пороговая. Порогом бинаризации называется двоичное значение номера серого цвета, всё светлее которого становится белым, а всё темнее - чёрным. Это теория.

Приступим к практике. Не снимая выделения с файла, обрабатываемого по вышеописанному методу, щёлкаем по узлу Binarization. Появляется меню с двумя ползунками - Details Filtering и Depth. Регулируем первый (и пока не двигаем второй), одновременно посматривая в окошечко Quick Preview, где в увеличенном масштабе отображаются изменения, происходящие с текстом. Нажав кнопку Preview, можно увидеть и всю страницу целиком. Ваша цель - получить оптимальное соотношение между читаемыми символами чистого текста и мусором, оставшимся/образовавшимся после обработки изображения инструментом Lighting correction. Очень хороший результат получается, если обрабатываемые страницы содержат только текст или несложные схемы. Если же речь идёт о полутоновых картинках - здесь нам и понадобится второй ползунок Depth. Методика подбора: изменяя взаимное положение ползунков, следить за состоянием картинок до получения приемлемого результата. Предчувствую, что читатели могут подумать: а к чему столько мороки, ведь тот же IrfanView умеет быстро конвертировать любую картинку в чёрно-белый TIFF. Уметь-то он умеет, да качество при этом страдает. Вся разница в том, что там порог бинаризации жёстко фиксированный и намертво "прошит" в коде программы, то есть ни о каком визуальном подборе даже речи не идёт.

Теперь осталось устранить перекос страниц (если он есть) и убрать мелкий мусор. Для этих целей и предназначены команды Deskew и Despeckle. Первая автоматически устраняет перекос (притом можно задать точность определения перекоса до десятой доли градуса и выравнивать как по положению текста в целом, так и по левому/правому краю), а вторая убирает мелкий мусор - соринки, пятнышки и тому подобное. Как показала практика, команду Despeckle нет смысла использовать на цветных изображениях и Greyscale (результат практически нулевой), а также на страницах плохого качества (могут исчезнуть части отдельных букв, точки и запятые).

Кстати, в программе есть продвинутый вариант функции устранения перекоса - Geometrical Correction. Его имеет смысл использовать, если автоматическая функция Deskew не дала ожидаемых результатов. Как видно на скриншоте, данная опция позволяет устранить даже сложные геометрические искажения вручную, с ювелирной точностью.

Чтобы осуществить пакетное конвертирование, нужно выбрать все страницы в пакете (меню Edit > Select all или Ctrl+A) и проделать все вышеописанные пункты.

Ну а можно записать свои действия в макрос, а уже макрос применить ко всем выделенным страницам. Для этого выбираем Restoration-Scripts > New Script и жмём красную кнопочку "Запись" на панели инструментов. Производим над картинкой всю последовательность действий, затем нажимаем на кнопку "Остановить запись". Теперь этот макрос можно запустить в любой момент на выбранных файлах. Он отображается в подменю пункта NewScript.

После окончания пакетной обработки осталось только наш полуфабрикат сохранить для дальнейшей обрезки и подгонки. С этой целью направляемся в меню Book > Publish, указываем папку назначения, а также выбираем формат сохранения файлов (в нашем случае это G4-compressed TIFF, Сolor Range - binary). Жмём "ОК" и читаем дальше.

Теперь дело за малым - правильно обрезать и разрезать страницы перед кодированием. Под словом "правильно" подразумевается ровно и одинаково для всех страниц. Здесь сразу следует сказать о разнообразии полученных после сканирования вариантов отображения картинок. Если книга небольшого размера, то отсканировать её удалось полным разворотом на две страницы. Если размер побольше - то получаем скан одной страницы + часть второй. Всегда старайтесь сканы редактировать так, чтобы на одну страницу в электронной версии приходилась одна в бумажном варианте. Что бы там ни говорили любители читать книги полным разворотом, но разворот можно оформить и средствами просмотрщика (тот же DjVuReader или WinDjView умеет отображать на экране одновременно две страницы).

Теперь на передний план выходит легендарная, не побоюсь этого слова, программа SсanKromsator (далее SK) от bolega. Возможности данной утилиты просто отменные, можно даже писать книгу по тонкой настройке и особенностям различных режимов работы. Но я попробую остановиться на главном.

Итак, наше "скан-сырьё" может быть либо двухстраничным, либо "полуторным". Механизм обработки примерно одинаков, но для большего удобства рекомендую в полуторных сканированных страницах произвести разделение на право- и левосторонние (если правильно называть файлы при сканировании, то это будут чётные и нечётные файлы) и разложить их по разным папкам. Запускаем SK и загружаем туда все чётные файлы (меню File > Open). В левом вертикальном узком окне отображается список загруженных файлов.

Для начала следует запустить режим так называемого "чернового кромсания" (Draft kromsate), чтобы маркеры попытались расставиться сами, в соответствии с интеллектуальным алгоритмом распознавания границы текста (особенности этой процедуры и связь её результатов с цветом полоски-маркера смотри ниже).

В меню Edit > Draft kromsate видим диалоговое окно, где уже должна быть галочка напротив Split (это чтобы разрезать картинку на две части, в случае "полуторок" галочку лучше убрать). Жмём "ОК" и после нам останется только подправлять расположение маркеров-резаков мышкой (если где-то что-то выступает за край или обрезается). Резаки запоминают последнюю позицию, поэтому, как правило, при переходе с файла на файл даже не потребуется подвигать резак.

Сами маркеры представляют собой синие или малиновые полоски. Синие - ограничители участка, внутри которого будет происходить основной процесс обработки, соответственно, и линия отреза обычно параллельна маркеру. Резак же малинового цвета - это средство ручной корректировки (он режет именно по тому месту, над которым находится), применимое, в основном, в случаях отстоящих далеко от основного текста номеров страниц, параграфов, кусочков строк и т.п.

Чтобы упростить себе жизнь, щёлкаем правой кнопкой мыши по каждому резаку (левый-правый, верхний-нижний) и в контекстном меню выбираем Copy current position to..., где в выпадающем меню отмечаем all down (на случай, если мы хотим перенести расположение с первого файла на остальные), аll marked (на все помеченные) или all alternate (на все, за исключением помеченных). Затем кнопочкой "W" листаем файлы в списке (Q - листать назад) и проверяем, чтобы маркеры находились на нужных местах. Теперь для сохранения настроек нам понадобится зайти на закладку Options2 главного окна и в выпадающем меню Cutters State выбрать Only cut, так как всё, что нужно, мы уже почистили и выровняли.

Жмём кнопку на этой же странице (если вы начали с последнего файла - то Apply up to current - применить ко всем непомеченным файлам вверх от текущей). Теперь идём на закладку Files и устанавливаем путь к папке, где будут находиться наши обработанные файлы - пункт Output Dir.

Пункт DPI я рекомендую выставить в режим Original (если сканы выполнялись с разрешением 300 dpi и не требовалось его увеличивать). Сolor тоже ставим Original. Чтобы опция была применена ко всем страницам, при выборе удерживаем Ctrl. Аналогично - при выборе остальных опций, которые применяются ко всем страницам сразу. Если во время автоматического редактирования отрезаются номера страниц, то можно на закладке Options2 увеличить чувствительность текста (text sensitivity). Если на выходе требуется получить не одиночные страницы, а развороты, то в задании всё равно нужно выполнить независимое выравнивание половинок разворота, но на закладке Book включить опцию Merge pages after split.

После того, как все страницы проверены на правильность расположения маркеров, смело жмём на кнопку Process! и ждём результата. Затем повторяем методику для оставшихся страниц (чётных или нечётных).

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

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

(Окончание следует)

Сергей БЕСАРАБ aka stean,
helpfaq@tut.by

Версия для печатиВерсия для печати

Номер: 

36 за 2008 год

Рубрика: 

На заметку
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!