ScanKromsator
Version 1.0 beta
Freeware

Author: Bolega
bolega@hotmail.ru





Руководство пользователя


Основные характеристики

Программа предназначена для автоматизации обработки изображений страниц книг,
полученных в результате сканирования.
Основные функции:
- конвертация формата и DPI изображений;
- разворот изображений на 90, -90, 180 градусов;
- автоматическое исправление наклона страниц;
- разрезание разворотов страниц на две отдельные страницы;
- автоматическое определение ширины книги и приведение размеров всех ее страниц к
единому значению, автоматическое исправление полей страниц;
- убирание лишних или «грязных» полей;
- убирание черных полос на развороте страниц;
- полу-автоматическая чистка черных полос (как правило, на развороте), «налезающих»
на текст (в настоящей версии функция работает, но не совсем стабильно, поэтому
вынесена в пост-обработку);
- гибкие правила по именования выходных файлов (добавление префикса, нумерация с
шагом, нумерация начиная с определенного значения);
- smart-сортировка имен исходных файлов: правильно расположит файлы типа
[xxx]1.tif, [xxx]1[x].tif, [xxx]2.tif, …, [xxx]100.tif, …
где [xxx] – произвольный опциональный префикс, [x] – произвольный опциональный
однобуквенный суффикс;
- высокая скорость обработки: от 7 (600dpi – исходный, 300dpi – конечный) до 30
(300dpi-300dpi) разворотов страниц в минуту. (Данные для P-IV-2400).

Поддерживаемый формат исходных файлов: BMP (сжатый и несжатый), TIFF (все
форматы включая LZW), GIF.
Поддерживаемый формат конечных файлов: BMP (несжатый), TIFF (сжатый и
несжатый).
Поддерживаемое значение DPI исходных файлов: все.
Поддерживаемое значение DPI конечных файлов: 300, 600, а также режим сохранения
DPI равным его значению в исходном файле.
Поддержка серых (256) и цветных изображений: есть, но практически не
тестировалась.

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


Введение

Окно программы разделено на 3 панели.
В левой панели расположены:
- список обрабатываемых файлов. При выборе файла из списка он загружается и
отображается в панели просмотра;
- различные элементы управления, предназначенные для задания тех или иных опций и
режимов обработки;
- кнопка фиксации текущих выставленных параметров обработки для группы страниц;
- кнопка фиксации текущих выставленных параметров обработки для текущей
страницы;
- информационное поле, в котором выводятся краткие характеристики текущего
изображения (размеры, dpi, формат сжатия, число бит на пиксел).
Элементы управления располагаются на двух страницах-закладках: “Page” и “Global”.
Первая предназначена для индивидуального или группового управления обработкой
страниц книги (или их половинок в случае разворота), вторая страница служит для
задания общих параметров обработки.

В верхней панели расположены:
- кнопка выбора файлов с изображениями;
- бегунок, задающий значение для масштаба просмотра изображения;
- кнопка автоматического оптимального масштабирования изображения;
- кнопка, запускающая процесс обработки на выполнение;
- список выбора угла предварительного разворота изображения;
- четыре переключателя: верхние два включают/выключают режим обрезки страницы
по левому и правому краям, нижние два – режим обрезки или чистки (в зависимости
от состояния параметра Split на левой панели) внутренней области разворота
страницы. При включении того или иного режима, на изображении появляется
соответствующая ему вертикальная режущая линия (cutting line). Положение линии
изменяется мышкой с помощью специальных бегунков (см. далее). Правее
переключателей выводятся значения горизонтальных координат для всех четырех
режущих линий. Координаты измеряются в пикселях от начала изображения.

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


Порядок подготовки и запуска задания

Коротко, подготовка задания производится в следующем порядке:

1. Выбираются файлы со сканированными изображениями, либо открывается ранее
подготовленное и сохраненное задание.
2. Для каждой страницы или группы подряд идущих страниц задаются правила
обработки.
3. После того, как определены правила для всех изображений, запускается процесс
обработки и по его окончании в отдельном окне просматривается результат работы.
Допускается выборочная обработка: как для отдельного исходного файла, так и для
диапазона файлов.
4. Если полученный результат пользователя не устраивает, он закрывает окно и
возвращается к пункту 2. В окне результатов предусмотрена возможность пост-
обработки: очистка произвольного выделенного мышкой прямоугольного фрагмента,
а также автоматическая очистка черной полосы, «наползающей» на текст.


Подготовка задания

Рассмотрим процесс подготовки задания более подробно.

1. Нажмите кнопку с изображением папки, расположенную на верхней панели, и
выберите нужные файлы со сканированными изображениями. Как обычно, с
помощью клавиши Shift можно выбирать диапазон файлов, с помощью клавиши Ctrl –
отдельные файлы. Выбранные файлы будут отсортированы по именам с
использованием smart-сортировки и их имена занесутся в список, расположенный в
верхней части левой панели программы.



2. Активируйте мышкой или с помощью клавиатуры первый файл в списке.
Изображение появится в панели просмотра. По умолчанию первое изображение из
списка масштабируется так, чтобы целиком уместиться в отведенной области.
Последующие картинки масштабируются с тем же коэффициентом, что и первое
изображение. Масштаб можно в любой момент изменить с помощью бегунка
масштабирования, либо колесиком мышки.
По умолчанию для качественной прорисовки изображений используется линейное
фильтрование. Если у вас маломощный компьютер, или вы просто хотите без
задержек перемещаться по списку файлов, отключите фильтр. Для этого в
контекстном меню панели просмотра выберите опцию “No zoom filter”.


3. Теперь можно задавать правила обработки текущей страницы. Однако, прежде чем
перейти к описанию правил, приведем их полный перечень с указанием доступной
применимости:

Правило
Применимо
Применимо
Применимо
ко всей
раздельно к
только ко всем
странице
каждой части
страницам сразу
разворота
External margins cut
+
+
-
Internal margins cut
-
+
-
Rotate 90,180
+
-
-
Split
+
-
-
Deskew
+
+
-
Art Deskew
+
+
-
Ortho Deskew
+
+
-
Despeckle
+
-
-
AutoMargins
+
+
-
Text position
+
+
-
Gap value
-
-
+
Page width type
-
-
+
Page width
-
-
+
Output format
-
-
+
Output dpi
-
-
+
Output prefix
-
-
+

Отметим, что порядок задания правил, за исключением разворота, никакого значения не
имеет.




3.1. Предварительный разворот изображения на 90, -90 или 180 градусов. Очевидно, что
данное правило, если оно необходимо, должно быть задано первым.

3.2. Разрезание страницы с разворотом на две половины. Для этого включите
переключатель “Split”. Здесь возможны два варианта: либо изображение просто
разрезается на две части, либо одновременно с этим происходит отсечение черной
(или просто ненужной) области в районе разворота. В первом случае передвиньте
второй сверху бегунок (Xi1) в положение, примерно соответствующее центру
разворота. Во втором случае дополнительно включите переключатель Xi2. В вашем
распоряжении будут уже два бегунка (и соответственно две режущии линии), один из
которых поставьте левее черной полосы, другой – правее. При выполнении задания
область между двумя режущими линиями будет вырезана и удалена. При этом левая
линия будет определять правый край левой страницы, а правая линия – левый край
правой страницы.
Если вы хотите удалить черную полосу на развороте не разрезая страницы на две, не
включайте опцию “Split”, но включите переключатель Xi2. В этом случае область
между двумя внутренними режущими линиями будет не вырезаться, а только
очищаться.

3.3. Отрезание ненужных полей слева и справа. Для отрезания ненужных крайних полей
всего изображения, или, если включена опция Split, левого поля левой страницы и
правого поля правой, включите переключатели Xl и Xr соответственно (или оба
сразу, или любой из них, если хотите обрезать поле только с какой-либо одной
стороны). На нижней панели станут доступны еще два бегунка и соответствующие
им режущие линии. Установите линии мышкой в нужное положение.

3.4. Автоматическая компенсация наклона страниц. Включите опцию “Deskew”. В
режиме Split компенсация наклона выполняется независимо для левой и правой
страниц разворота. Операция “Deskew” выполняется очень быстро и дает
правильный результат в 99% случаев. Исключение составляют три типа страниц:
страницы со сложными художественными рисунками, сильно разреженные
страницы, и, наконец, страницы, имеющие вертикальную ориентацию, но
содержимое которых расположено перпендикулярно, т.е. развернуто на 90 градусов.
Как правило, заложенный в программу стандартный deskew-алгоритм дает в таких
случаях неправильный результат. Для борьбы с этим предусмотрено два
дополнительных режима: “Art” и “Ortho”. Режим “Art” применяйте в первом и
втором случаях, режим “Ortho” – в третьем. Допускается любая комбинация этих
режимов. В случае разворота режимы можно задействовать раздельно для каждой из
половинок страницы. “Art”-режим идеально справляется с любым наклоном и любым
типом страниц, но имеет один недостаток – он выполняется в два-три раза медленнее
стандартного алгоритма. Поэтому не стоит применять его для всех страниц подряд.
“Ortho”-режим
работает
очень
просто:
сначала
программа
выполнит
вспомогательный поворот страницы на 90 градусов, рассчитает угол Deskew
(стандартным или Art-алгоритмом), и только потом применит этот угол к исходному
изображению.

3.5. Удаление из изображения мелких паразитных пятен. Включите опцию “Despeckle”.

3.6. Автоматический расчет полей страницы. Включите опцию “AutoMargins”. Данное
правило позволит привести ширину всех полей страниц книги к единому значению,
которое задается в элементе “Gap value”. При этом положение установленных вами
режущих линий особого значения уже не имеют. Программа сама уберет лишние

поля или, наоборот, добавит пространства с тех сторон страницы, где величина поля
оказывается недостаточной. В связи с этим возникает вопрос: а зачем тогда нужны
режущие линии? Действительно, за исключением линии Xi1, используемой всегда в
режиме Split, остальные линии в общем случае можно не задействовать. Они нужны
только тогда, когда поля или внутренняя область разворота имеют много паразитных
точек или черные вертикальные полосы. Если не отрезать их, то AutoMargins-
алгоритм примет их за текст и соответственно неправильно рассчитает ширину
внешних или внутренних полей. Придерживайтесь следующего правила: отрезайте
всегда лишние области на внешних и внутренних полях отсканированной страницы,
если они содержат «мусор» в виде линий или крупных точек. Этим самым вы не
только обеспечите правильность конечного результата, но и заметно сократите время
работы алгоритма.
Режим AutoMargins допускается применять дифференцированно: его можно
задействовать не только для каждой страницы, но еще и отдельно для ее левого и
правого края. Что означает ситуация, когда опция AutoMargins активизирована, но
галочка, например, для левого края, не проставлена? Это означает следующее:
программа сделает левое поле равным “Gap value” пикселей, но автоматически
определять крайнюю левую позицию, с которой начинается текст, не станет – она
будет предполагать, что эту позицию вы выставили вручную с помощью левой
режущей линии (Xl).

3.7. Text position. Возможные значения параметра: A(Auto), L(Left), C(Center), R(Right).
Данное правило имеет смысл применять только если включена опция “AutoMargins”.
В этом случае текст в конечном файле будет иметь то же положение на странице, что
и в исходном изображении. Если исходная страница содержит неширокий текст по
середине, то при выборе для нее значения C(Center), обработанное изображение
будет также отцентрированном. Если же опцию не включить, то текст окажется
прижатым к левому краю. В настоящей версии программы параметры A,L,R всегда
эквивалентны L. Правило введено в программу с одной целью – если в исходном
изображении его содержимое отцентрировано по ширине странице, то при задании
для нее С оно останется таковым же на выходе. Правило задается независимо для
левой и правой страниц разворота.


4. Перейдите в списке файлов на следующий файл. Все правила, установленные для
предыдущего изображения, останутся справедливыми и для текущего файла (если
текущая страница имеет отличные от предыдущей размеры, то бегунки и режущие
линии изменят свое положение так, чтобы их положение в пикселях от начала
изображения были такими же, как и в предыдущем изображении). Если визуально
видно, что существующие правила вполне удовлетворяют данному изображению,
перемещайтесь на следующий файл в списке. Как показывает опыт, единожды
подобранное правило остается справедливым для одного и более десятка подряд
идущих страниц. За счет этого факта время, затрачиваемое на подготовку задания, как
правило, невелико (от 3 до 5 минут на каждые 100 файлов). И что более важно,
использование однотипных режущих линий значительно сокращает время получения
конечного результата. Если бы программа использовала бы исключительно
автоматические супер-интеллектуальные методы для отсечения и разрезания
«грязных» полей и разворотов, то обработка страниц занимала бы от нескольких
десятков минут в лучшем случае до нескольких часов в худшем. Здесь же, используя
тот факт, что разметка остается неизменной для большого количества подряд идущих
страниц, получаем время обработки, измеряемое минутами.
Итак, перейдя на очередную страницу, вы обнаруживаете, что текущие правила уже
не подходят. Вернитесь на предыдущий файл и нажмите кнопку «Apply up to current».

Все установленные правила будут «прикреплены» ко всем файлам, начиная от
первого файла в списке, не имеющего впереди галочки, и кончая текущим.
Допускается применять текущие правила к любому отдельно взятому файлу из
списка. Для этого перейдите на нужный файл, задайте правила и нажмите кнопку
«Apply to current» или просто поставьте мышкой галочку напротив имени файла.
Для того, чтобы исключить файл из обработки, оставив его при этом в списке,
снимите галочку напротив него. При выполнении задания файл обрабатываться не
будет. Чтобы снять галочки со всех файлов списка, выберите в контекстном меню
списка команду «Unmark all». Имейте ввиду, что снимая галочку, вы также теряете
все правила, прикрепленные к деактивированному файлу.
Еще один момент: если вы решили изменить правила обработки для уже помеченного
галочкой файла, то для этого недостаточно стать на файл и поменять правила. Для
уже помеченных файлов изменение правила автоматически не фиксируется (во
избежание случайных непреднамеренных изменений). Чтобы заменить старое
правило, сначала уберите галочку напротив файла, измените правило, а затем снова
поставьте галочку для принятия изменений.

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

1. Page width. Возможные значения: Auto, Fixed, None. Если задано значение Auto,
программа выполнит приведение ширины всех страниц книги к единому значению.
Само значение будет вычислено автоматически с учетом фактических ширин страниц
и заданного Gap Value. Отметим, что для определения ширины используется
специальный адаптивный алгоритм, позволяющий интеллектуально обрабатывать
страницы (такие случаи встречаются не так уж редко), текст на которых «вылазит» на
поля. В этом случае адаптивный алгоритм путем несложного статистического анализа
определит, насколько нужно уменьшить Gap Value для таких страниц.
Если задано значение Fixed, то ширина всех страниц будет подогнана до значения,
указанного пользователем. Заданное значение ширины воспринимается как ширина с
учетом Gap Value.
Значение параметра, равное None, по сути предписывает программе оставлять
ширину страниц AS IS, т.е. только с учетом положения режущих линий и значения
параметра AutoMargins.

2. Gap value – задает значение размеров полей страниц в пикселях.

3. Output dir – папка, в которую будут сохраняться результирующие файлы. Если папки
не существует, программа попытается создать ее.

4. Output prefix – произвольная буквенно-цифровая строка, которая будет добавляться к
именам выходных файлов. Отметим, что имена выходных файлов всегда
формируются по следующему правилу:

[prefix]01.TIF, …, [prefix]21.TIF
[prefix]001.TIF, …, [prefix]150.TIF
[prefix]01.TIF, [prefix]03.TIF, … (если Step<>1)
[prefix]10.TIF, [prefix]11.TIF, … (если Start from <>1)

5. Start from – числовое значение в имени файла, с которого начнется нумерация
выходных страниц.

6. Step – числовой шаг, используемый при нумерации выходных файлов.


7. Output format – формат выходных изображений.

8. Output DPI – значение DPI выходных изображений.


Обработка задания и просмотр результата

После того, как задание сформировано, запустите его на выполнение, нажав кнопку
“Process!”.
В контекстном меню списка файлов доступны дополнительно еще три команды: “Process
current file” – для обработки только текущего выбранного изображения, “Process up to
current” - для обработки всех изображений начиная от первого и заканчивая текущим
выбранным, и “Process from current” - для обработки всех изображений начиная от текущего
выбранного и заканчивая последним в списке.
Напомним, что в любом случае обрабатываться будут только те файлы, напротив
которых выставлена галочка.
В процессе обработки на экране отображается окошко, в котором показывается ход
обработки. Вы можете прервать выполнение задания, нажав кнопку “Cancel”.

По окончании выполнения задания на экран будет выведено окно, в котором
отображаются файлы с результирующими изображениями. Предусмотрен показ как одного
файла, так и двух одновременно. Вверху окна расположены различные кнопки, служащие
для навигации по списку изображений. Если включить опцию “Sync”, то при навигации по
выходным файлам будет производиться автоматическая смена изображений и в окне с
исходными файлами.




В окне просмотра результата можно производить так называемую пост-обработку. В
данной версии предусмотрено только две операции: очистка произвольной прямоугольной
области и удаление черных полос, «наезжающих» на текст.
Прежде чем начать пост-обработку, выберите в контекстном меню панели с
изображением команду «Edit image».
Для очистки области выделите ее мышкой и нажмите клавишу Delete.
Для удаления черной полосы также окружите ее выделением, и в зависимости от того,
расположен текст справа или слева от полосы, выберите в контекстном меню команду
«Remove shadow on right page» или «Remove shadow on left page» соответственно. Ничего
страшного, если область выделения захватит часть текста.

На рисунках показан файл до и после удаления черной полосы:





















Сохранение и загрузка задания

Для сохранения задания в файл выберите в контекстном меню списка файлов команду
“Save task”. Для загрузки ранее сохраненного задания в том же меню выберите команду
“Open task”.
Предусмотрен быстрый доступ к последним трем сохраненным заданиям: их имена
выводятся в конце контекстного меню.
В файле задания сохраняются полные абсолютные пути к файлам с изображениями. Если
окажется, что местоположение исходных файлов на диске изменилось, при открытии
задания, не обнаружив файлы по старому пути, программа попросит вас указать новое
месторасположение файлов.


FAQ

В данном разделе освещаются некоторые вопросы, которые не нашли своего отражения
выше.

1. Вопрос. Я забыл сохранить подготовленное задание в файл. Нужно ли мне составлять
его заново? Ответ: Нет, при условии, что после этого вы не загружали и не
формировали другие задания. Последнее подготовленное задание автоматически
сохраняется во временный файл “current.spt”, который располагается в папке с
исполняемым файлом.

2. Вопрос. Как мне быстрее всего загрузить файлы, являющиеся в свою очередь
выходными файлами другого задания? Ответ: После выполнения каждого задания
программа автоматически создает новое пустое задание, заполнив его только именами
выходных файлов. Заданию дается имя текущего задания с прибавлением суффикса
“out”.

3. Я выполнил задание и затем захотел изменить его параметры для одного из файлов.
После корректировки запустил задание снова, выбрав команду “Process current file”.
После этого ширина получившегося выходного файла стала другой. В чем дело?
Ответ: Видимо, первично вы запускали задание с включенной опцией Auto Page
Width. Эта же опция осталась активной и при втором запуске. Но при данной опции
ширина страницы вычисляется исходя из анализа ширин всех страниц книги. Поэтому
при повторном запуске выберите опцию Fixed Page Width (значение Page Width было
вычислено при первом запуске).

4. Я составил задание и впоследствии решил применить опцию Art Descew для всех
страниц. Но для этого я должен теперь пройтись по всем файлам в списке, и для
каждого из них убрать галочку, включить опцию Art и затем снова проставить
галочку. Есть ли способ сделать это быстрее? Ответ: Да. Станьте на любой файл в
списке и, удерживая клавишу Ctrl нажатой, включите опцию Art. В результате данное
правило будет присвоено всем файлам в списке. Данная возможность справедлива для
всех правил.

5. Можно ли двигать режущие линии (правую и левую) синхронно? Ответ: Да. Для этого
удерживайте клавишу Ctrl нажатой.

6. После просмотра результата выполнения задания я закрыл окно с результатом.
Можно ли как-то снова вызвать его, не запуская задание повторно? Ответ: Да. Для
этого выберите в контекстном меню списка файлов команду “Show result”.

7. Можно ли удалить совсем какой-либо файл из списка файлов? Ответ: Да. Для этого
выберите в контекстном меню списка файлов команду “Delete file from task”.

8. Можно ли добавить к заданию новый файл, которого нет в текущем списке? Ответ:
Нет. Данная возможность будет реализована в следующей версии.

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

исправлено. Пока же рекомендуется не изменять масштаб просмотра исходного
изображения на этапе подготовки задания.