Обработка на сканирани изображения чрез Scan Tailor
Обработка на сканирани изображения — това е доста обширна тема. Тези операции могат да се извършват както с програмите за обща графична обработка (Photoshop, XnView и т.н.), така и със специализирани програми. От комерсиалните такива са BookRestorer, RasterID; от безплатните — ScanKromsator, Scan Tailor, ArtScan.
Най-мощната програма в този сектор безусловно е ScanKromsator. За съжаление тя е с ужасен интерфейс, огромен брой неясни функции и никаква документация. Човек трябва да има сериозни познания в графичната обработка, за да може да работи пълноценно с нея. Нямам наблюдения за ArtScan, но не харесвам програми, които за да тръгнат, изискват да кача на компютъра си питони, жаби, .NET-някой-си и други подобни гадини. Е, Scan Tailor няма този проблем, освен това е ориентиран като пълна противоположност на ScanKromsator — и като богатство на функции (предлага само най-необходимото), и като лекота за употреба (много елементарен и приятелски интерфейс). Безплатен е, с отворен код, има версии за Windows и Linux; домашната му страница е scantailor.sourceforge.net.
Тук ще разгледаме само версия 0.9.9.1 за Windows, с интерфейс на български език.
Кратко отклонение: Scan Tailor се предлага с три възможни интерфейса — на английски, на руски и на български език. За съжаление няма директен начин за превключването им; програмата автоматично избира език според настройките на операционната система. Т.е. ако Windows-ът ви е настроен за място, различно от България, няма да видите български превод. Да, глупаво решение, но засега е така. Предполагам, че работещите с английския интерфейс няма да имат проблем с разчитането на командите.
Идеологията на Scan Tailor е следната: всяка заредена картинка трябва да премине задължително през шестте етапа на обработката, дори ако на съответния етап не се извършва никаква обработка. Нямате възможност да сменяте реда за обработка, да изключвате етапи от обработката и т.н.; ако се налага да извършвате по-сложни обработки, тази програма определено не е за вас.
Съдържание
Стартиране
След стартиране ще видите следното:
Прозорецът на програмата е разделен на три части: в лявата част е списъкът с етапите и техните параметри, в средната част се извежда текущата страница, а в дясната част се показват умалени изображения на заредените за обработка страници.
Панелът в средата на екрана е помощен — можете да го използвате при започване на работата, или да изпълните командите чрез менюто „Файл“.
Да започваме работа. Натискаме „Нов проект…“ (или го избираме от менюто „Файл“) и получаваме следния екран:
В полето „Входна папка“ въвеждаме пътя към сканираните изображения (или го избираме чрез бутона „Преглед“). В полето „Изходна папка“ се указва къде да се запишат вече обработените изображения; автоматично ще ни бъде предложено да използваме папка „out“ в указаната входна папка. Ако желаете крайните файлове да се запишат на друго място, въведете го или го изберете чрез бутона „Преглед“.
В следващите два прозореца се извеждат съответно файловете, които няма да се обработват (които не са картинки), и файловете, които ще бъдат включени в проекта. Ако желаете да обработите само част от файловете, изведени в групата „Файлове в проекта“, можете да ги маркирате и да ги прехвърлите в другата група чрез бутона „<<“. Обратното действие също е възможно, но само за файловете, които програмата разпознава като картинки (TIF/TIFF, JPG/JPEG, PNG). В нашия случай искаме да обработим всички налични картинки, затова просто натискаме бутона „OK“.
Ако някоя от картинките няма зададено DPI (точки на инч; разделителната способност на изображенията), каквито са всички изображения от цифров фотоапарат, ще се появи следният прозорец:
Ако проектът ви съдържа само изображения, получени от скенер, този прозорец няма да се появи.
На първата страница от този прозорец са изброени всички картинки, за които няма зададено DPI, а на втората — всички картинки от проекта. В този прозорец трябва да изберете съответната картинка, да зададете разделителната й способност в полето „DPI“ и да натиснете бутона „Прилагане“. Тъй като всички картинки от нашия пример са с еднаква разделителна способност, изчисляваме колко точки на инч се получават при заснемането на книга с височина 20 см в 3456 точки и получаваме около 450 dpi. Но няма да издребняваме толкова, затова в прозореца избираме „Всички страници“, в полето „DPI“ избираме „400×400“, натискаме бутона „Прилагане“, а след това — бутона „OK“.
Ще видите следния процес:
Поправка на ориентацията
В първия етап трябва да завъртим всички изображения така, че текстът да е хоризонтално.
1. В нашия пример първата страница трябва да се завърти наляво, затова натискаме съответния бутон (с нарисувана лява стрелка) от панела с параметри. За да преминем към следващото изображение, можем или да го изберем с мишката от най-десния панел, или да използваме клавишите „w“ или „PgDn“ (клавишите „q“ и „PgUp“ връщат една картинка назад). Чрез бутона „Начално“ можете да се върнете към оригиналното състояние на картинката.
(Тук е мястото да вметнем следното пояснение: Каквито и операции да извършвате чрез Scan Tailor, оригиналните ви изображения няма да бъдат модифицирани. Програмата ще записва междинните етапи в папка „cache“ на проекта, a изходния резултат — в указаната от вас папка.)
Както може да се види от примера, всички страници трябва да се завъртят наляво. За да не указваме тези действия за всяка страница поотделно, ще приложим завъртането към една страница и ще го разпрострем върху останалите. Това става по следния начин: Избираме първата страница (вече сме я завъртели наляво), след което натискаме бутона „Прилагане към…“. Появява се следният прозорец:
В него можем да изберем към кои картинки да приложим текущата модификация:
- Само тази страница (вече е приложено);
- към всички изображения;
- към всички изображения (включително и текущото);
- към всички изображения, които са през една от текущата (както напред, така и назад от избраната).
Последните два параметъра са активни само ако изберете няколко страници наведнъж от десния панел — чрез първата модификациите се прилагат върху всички избрани страници, а чрез втората — върху всяка втора от избраните страници. За да е активна последната опция, трябва да сте избрали непрекъсната поредица от картинки. Изборът на картинки следва общоприетите практики — с натиснат Ctrl можете да избирате единични картинки, а с натиснат Shift — диапазон от картинки.
Да се върнем на примера. Избираме „Всички страници“ и натискаме бутона „OK“. Можем да разгледаме страниците в най-десния панел и да се убедим, че всички страници са завъртени наляво (т.е. вече са ориентирани правилно).
2. Другият случай е когато половината от изображенията са обърнати в една посока, а другата половина в обратната посока (четни и нечетни страници). В този случай първата страница трябва да се завърти наляво, затова натискаме съответния бутон (с нарисувана лява стрелка) от панела с параметри.
Всички нечетни страници трябва да се завъртят наляво, а всички четни — надясно. За да не указваме тези действия за всяка страница поотделно, ще приложим завъртането към една страница и ще го разпрострем върху останалите. Това става по следния начин: Избираме първата страница (вече сме я завъртели наляво), след което натискаме бутона „Прилагане към…“ От новопоявилият се прозорец избираме „Всяка втора страница“ и натискаме бутона „OK“. Можем да разгледаме страниците в най-десния панел и да се убедим, че всички нечетни страници са завъртени наляво (т.е. вече са ориентирани правилно). Повтаряме същите действия и за четните страници: Избираме втората страница, завъртаме я надясно чрез бутона от панела с параметри, натискаме бутона „Прилагане към…“, от появилия се прозорец избираме „Всяка втора страница“ и натискаме бутона „OK“.
Всички страници вече са ориентирани правилно; първият етап е приключен.
Ако сте заредили за обработка картинки, които нямат нужда от поправка на ориентацията, можете да продължите директно към втория етап.
Разделяне на страници
На този етап трябва да се определи от какъв тип е картинката и да се отрежат излишните части. Както може да се види от панела с параметри, има три варианта:
- чиста страница (без излишъци);
- страница, в която е попаднала част от другата страница и
- двойна страница (две страници в една картинка, както е в нашият пример):
Алгоритмът при единични (чисти) страници се държи добре, при двойни страници — също (прави по няколко грешки при проекти с няколко стотин страници). В случаят когато страница е попаднала част от другата страница, алгоритъмът се опитва да отреже излишната част отдясно, вместо отляво. Тъй като отрязването на цветната част предизвиква по-малко проблеми при по-късните етапи, засега ще се примирим с този недостатък.
Поредното отклонение: Ако сте забелязали, в дясната част на надписа на активния етап се появява бутон с триъгълниче (като командата „Play“):
Чрез него се запуска автоматична обработка за текущия етап на всички страници след текущата. Идеята е следната: Например в етапа „Разделяне на страници“ натискате този бутон и програмата автоматично определя къде трябва да се отрежат (разделят) всички картинки от проекта. След като приключи работа, можете да разгледате резултата и да направите поправки „на ръка“ там, където е необходимо.
След като стартира процеса се появява бутон за спиране с име „Спиране на масовата обработка“. Под него ще забележите плъзгач:
Чрез него може да се регулира натоварването, което оказва програмата върху вашата система. Може да придвижвате плъзгача, чрез мишката или чрез натискане на бутоните „–“ и „+“.
Тук е мястото да поясним и действието на големия тънък бутон, намиращ се над най-дясната част (с изображенията на страниците):
Ако е натиснат, по време на автоматичната обработка десният панел ще се премества (скролира) автоматично така, че винаги да виждате текущата обработвана страница. При по-бавните операции това е полезно, защото можете веднага да видите неправилно обработените страници, да спрете автоматичната обработка, да ги поправите и да запуснете отново обработката, за да не ги обхождате ръчно след това.
На етапа „Разделяне на страници“ можете да коригирате мястото на отрязване, като преместите синята линия чрез влачене на произволна част от нея (областта, оцветена в синьо, ще остане, а неоцветените части ще се отрежат; при разделяне на двойни страници се използва червен и син фон). Ако влачите краищата на линията, ще можете да я наклоните според желанията си. Имате възможност да разпрострете действието на разделителната линия върху останалите страници посредством бутона „Промяна…“.
След приключване на текущата задача, програмата ви известавя чрез примигване в работната лента. Може да използвате и звуков сигнал, който се включва чрез отметка под бутона за спирането на автоматичната обработка.
Компенсация на наклона
На този етап коригираме наклона на сканираните страници. Допустимо е завъртане от +45 до –45 градуса. Този алгоритъм работи много надеждно, освен ако на картинката не е останало нещо, различно от текста на страницата (външен фон, съседна страница и т.н.).
Аналогично на предишния етап, натискаме бутона с триъгълничето („Play“) и изчакваме края на автоматичното определяне на необходимото завъртане, като наблюдаваме резултата в дясната част на екрана.
И поредното отклонение: Ако още не сте разбрали, големият въпросителен знак, извеждан върху умалените картинки в дясната част на екрана, показва, че съответната страница не е преминала обработката на текущия етап:
След като обработката приключи, можете да компенсирате неправилно определения наклон за дадена страница, като влачите големите сини точки. Както вече казах, алгоритъмът е много надежден и много рядко ще попадате на страница, при която корекцията да е сгрешена.
Още едно допълнение: ако виждате, че има страница, която е празна (без текст и каквото и да било съдържание) може да я премахнете чрез натискане на десен бутон върху нея и избиране „Премахване от проекта“:
След което потвърдете чрез натискане на бутона „Премахване“.
Избор на съдържание
На този етап се определя областта от картинката, която съдържа полезна информация (интересуващият ни текст). Отново натискаме бутона за пакетна обработка (триъгълничето) и наблюдаваме обработката в дясната част на екрана. Този процес е сравнително бавен, така че можем спокойно да проследим предложеното от програмата решение и при необходимост да спрем автоматичната обработка, да коригираме проблема (като преместим с мишката границите до правилната им позиция) и да продължим.
Оформление на страница
На този етап се определят две неща:
1. Какви бели полета да се поставят около областта с текст, определен от предишния етап.
Това се задава в групата „Граници“ (в панела с параметри). В нашия случай е достатъчно да оставим по 5 mm от всички страни. Ако картинката на бутона с верижката е непрекъсната, промените на дадена стойност ще се копират в симетричната й стойност. Ако искате да зададете различни стойности, ще трябва първо да изключите синхронната промяна, като натиснете бутона с веригата.
Не забравяйте, че тази промяна важи само за текущата страница; за да я приложим към всички страници, трябва да натиснем бутона „Прилагане към“, в появилия се прозорец да изберем „Всички страници“ и да натиснем бутона „OK“.
2. Дали (и ако „да“ — как) да се уеднаквява размерът на крайните изображения.
Тази функция е полезна в случаите, когато искате да пакетирате обработените картинки в един файл (напр. DjVu), и за целта е необходимо всички изходни картинки да имат един и същ размер. За нуждите на разпознаването (OCR-а) това е излишно (ще се генерират по-големи картинки, тъй като всички ще се разширяват до размера на най-голямата картинка от пакета), затова изключваме подравняването и не забравяме да разпрострем тази настройка към останалите картинки от пакета чрез бутона „Прилагане към…“.
Резултатът се вижда в централния панел — двете непрекъснати рамки очертават съответно чисто текстовата област и областта с включени бели полета, а пунктирната рамка — какъв ще е размерът на крайната страница и как ще се разположи текущата страница в нея (разбира се, при изключено подравняване на страниците не се появява пунктирна рамка).
Най-отдолу в панела има два бутона, чрез които можете да откриете съответно най-широката и най-тясната страница:
В повечето случаи това ще ви покаже страници с неправилно определена текстова част; ако откриете такава, се връщате на етапа „Избор на съдържание“, коригирате ръчно областта (както вече беше обяснено) и се връщате в етапа „Оформление на страница“. Тъй като (както вече казахме) всички промени засягат само текущото изображение, няма нужда да повтаряте автоматизираната обработка на вече изминалите етапи.
Както може би забелязвате, ако използвате еднакви параметри за всички страници, автоматизираната обработка е излишна и на този етап.
Краен резултат
Достигнахме и до последния етап. Тук се определят следните неща:
1. Разделителната способност на крайните файлове.
Това се задава в групата „Изходна разделителна способност“. По подразбиране се предлага 600 dpi, но за книги с шрифт над 12 пункта това е излишно — първо, ще се генерират излишно големи файлове и второ, при такива книги (т.е. с 600 dpi при шрифт > 12pt) FineReader има склонността да разпознава запетайките като „4“ в долен индекс. Защо „4“, а не „9“ — нямам представа, но това е факт. За нашия пример ще изберем разделителна способност 400 dpi и ще я приложим върху всички страници от проекта:
При книги с шрифт под 10 пункта е повече от желателно да използвате изходна разделителна способност 600 dpi. Такива например обикновено са речниците.
2. Цветност на крайните файлове.
Имаме три варианта за избор — черно-бяло, цветно и смесено.
Черно-белият режим е най-подходящ за OCR. От полето „Почистване на шум“ можем да включим или изключим автоматичното премахване на паразитни точки (шум) от обработените картинки. Ако не желаем да се премахва шумът, трябва да изберем празното квадратче. В зависимост от качеството на изображенията можем да изберем в каква дълбочина алгоритъмът да отстранява шума. Това става чрез различните по-големина „метлички“. В нашият случай ще оставим режимът, който е по-подразбиране:
Чрез плъзгача в групата „Режим“ можем да определим чувствителността при определяне границите на буквите (за получаване на по-дебели или по-тънки букви). По мои наблюдения тези промени са доста незначителни, но спокойно можете да поекспериментирате, докато получите плътни букви, които не се сливат една с друга. Не забравяйте да разпрострете избраните настройки върху всички изображения от пакета чрез бутона „Прилагане към…“!
Цветният режим е подходящ за обработка на цветни списания, в които текстът не е обособен самостоятелно (напр. текстът е върху цветен фон или дори картинка).
В този режим имаме две настройки: „Бели граници“ — ако е включена, белите полета ще бъдат „почистени“ (т.е., ще бъдат бели) и „Изравняване на осветеността“ — ако е включена, програмата ще се опита да изравни (и изсветли) цвета на фона — полезно е при по-тъмни сканове.
Смесеният режим комбинира първите два — основната обработка на картинката е като в черно-бял режим, като ви се предоставя възможност да укажете области от страницата, които да останат цветни.
Това се задава в страницата „Зони за изображения“ в средния панел (тази страница е достъпна само в смесен режим):
Този режим е полезен при книги и списания, в които преобладава чистия текст, а само на места има картинки.
Разбира се, последните два режима са подходящи само ако обработвате картинки, които по-късно ще пакетирате в друг файл като окончателна версия, например DjVu.
Обърнете внимание, че в този етап последователността е обърната — първо задаваме настройките на страниците, след което стартираме автоматичната обработка със зададените параметри. Не е необходимо да проследяваме крайния резултат; на този етап няма какво да се обърка. След приключването му в указаната изходна папка се намират готовите, почистени изображения.
Допълнения и коментари
- Желателно е да запишете проекта си (менюто „Файл“ –> „Запазване на проект“), поне докато не приключите с разпознаването на текста (OCR). Ако откриете някакъв проблем, който сте пропуснали (грешно обработена страница), ще можете да заредите записания проект и да коригирате параметрите само на тази страница. Разбира се, запазването помага и когато искате да прекъснете работата и да продължите по-късно от там, където сте спрели.
- Вероятно по-наблюдателните са забелязали, че бутонът за пакетна обработка на първия етап („Поправка на ориентацията“) е напълно излишен — той просто не прави нищо. Авторът обяснява решението с аргумента, че е по-добре да има еднообразен интерфейс, дори и към него да няма асоциирана функционалност, отколкото да обяснява защо няма пакетна обработка на първи етап.
- На практика минаването през първите четири етапа не е задължително — можете да започнете направо от етап 5 — „Оформление на страница“. При стартиране на пакетната обработка програмата ще премине автоматично през всички предишни етапи. Разбира се, в този случай ще разчитате изцяло на надеждността на автоматичната обработка.
- Като допълнение към предишната забележка — не можете да преминете на последния етап („Краен резултат“), без да сте приключили с предишния („Оформление на страница“). Това е така, защото програмата все още няма информация за желания размер на крайния вариант и не може да започне обработката.
- Ако записвате обработените изображения в черно-бял режим (за OCR), имайте предвид, че програмата използва LZW-компресия вместо по-икономичния CCITT G4, в резултат на което файловете са около 2–3 пъти по-големи от необходимото. Ако държите на минималния размер (например, ако трябва да ги изпращате на друг човек), ще се наложи да ги конвертирате чрез някоя програма, поддържаща пакетна обработка (XnView, IrfanView и др.).
- Изображението в средния прозорец може да се мащабира с колелцето на мишката и да се премества чрез влачене (натиснат ляв бутон на мишката и преместване в желаната посока).
- Имате възможност да добавяте нови картинки към вече създаден пакет, както и да премахвате картинки. Добавянето или премахването може да става на всеки етап от обработката чрез натискане на десния бутон на мишката върху умалените картинки в дясната част на екрана. Оттам ще се покаже контекстно меню, от което можете да изберете дали искате да добавяте нова картинка преди или след избраната, или да изтриете избраната картинка.