Автор Тема: Программа ST GreyText  (Прочитано 30432 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Программа ST GreyText
« : 14 ПЭТРам 2010, 19:25:13 »
Я сделал новую программу:

ST GreyText v1.0

Скачать:

http://www.djvu-soft.narod.ru/soft/st_greytext_v1_0.rar  (470 КБ)

Исходники:

http://www.djvu-soft.narod.ru/soft/st_greytext_v1_0_src.rar  (36 КБ)

Лицензия - GPL 2.

Примечание: эта программа может быть нужной исключительно в тех случаях, когда в Scan Tailor обрабатываются сканы, содержащие полутоновые иллюстрации. Если же полутоновых иллюстраций на исходных сырых сканах нет - то эта программа не нужна в принципе.

Описание:

Программа ST GreyText является вспомогательной программой для Scan Tailor'а, модифицированного anagnost96 (STA).

ST GreyText расширяет возможности STA.

STA на стадии "Вывод" в режиме "Смешанный" имеет опцию вывода "Только текст". При этой опции СТА выводит чёрно-белые сканы, из которых вырезаны полутоновые картинки.

ST GreyText даёт возможность получить аналогичные сканы - только в режиме серого. На вид они получаются как обрезанные в СТА серые сканы с текстом, содержащие белые "окна" в тех местах, откуда были вырезаны картинки.

Принцип работы

Для создания серых сканов, из которых вырезаны полутоновые картинки, ST GreyText делает простую манипуляцию:

1. Берёт порезанные серые сканы, полученные в STA на стадии "Вывод" в режиме "Цветной / Серый".

2. Берёт порезанные сканы с картинками, полученные в STA на стадии "Вывод" в режиме "Смешанный" с опцией "Только изображения".

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

Использование

1. В STA создайте сканы по п.1 из "Принцип работы". Скопируйте их в отдельную папку. Скажем, С:\1.

2. В STA создайте сканы по п.2 из "Принцип работы". Скопируйте их в отдельную папку. Скажем, С:\2.

3. Откройте ST GreyText. Нажмите на кнопку "Open grey / color scans folder" и выберите папку из п.1 (С:\1).

При этом автоматически заполнится поле Output - к пути к папке из п.1 (С:\1) добавится подпапка "grey_texts" - получится "С:\1\grey_texts\". Туда будет впоследствии помещён результат.

4. Нажмите на кнопку "Open pictures folder" и выберите папку из п.2 (С:\2).

5. Нажмите на кнопку "Create grey texts" и подождите, пока не появится сообщение "Processing ended". Ждать, возможно, прийдётся долго - в зависимости от количества сканов. Пока нет никакой индикации постраничного создания новых сканов.

Примечания

Программа написана на скорую руку и поэтому весьма чувствительна к любого рода ошибочным ситуациям (чуть что не так - будет просто вылетать).

Должны соблюдаться следующие условия:

1. Количество и имена файлов в папках из п.1 из "Использование" (С:\1) и п.2 из "Использование" (С:\2) должны совпадать. Иначе - вылет программы.

Но это условие обычно обеспечивается автоматом - при использовании СТА в его нынешнем виде.

Где взять STA: тут - http://www.djvu-soft.narod.ru/soft/ . Он там называется что-то вроде "Scan Tailor anagnost96".

Имейте в виду, что обычный Scan Tailor не подойдёт (актуальная версия обычного Scan Tailor - 0.9.7.1).

Зачем всё это нужно (т.е. программа ST GreyText)

Серые сканы, из которых вырезаны полутоновые картинки, нужны для тех случаев, когда у нас книга содержит полутоновые иллюстрации (обрабатываемые STA), а STA их обрабатывает недостаточно качественно.

Тогда-то мы и создаём серые сканы, из которых вырезаны полутоновые картинки (при помощи ST GreyText), и обрабатываем их как хотим в любой сторонней программе (яркий пример - выравнивание освещения и выпрямление искривленных строк в Book Restorer 4.2.1) и в конечном итоге бинаризуем.

Это значит, что после их бинаризации мы получаем т.н. передние субсканы - которые можно задежавючить по методу разделённых сканов http://www.djvu-soft.narod.ru/scan/djvu_imager.htm (соответствующие им задние субсканы у нас уже есть - они получены по п.2 из "Принцип работы").

Программа ST GreyText появилась на свет из-за того, что ни сам Scan Tailor, ни STA не имеют такой функциональности.

Надеюсь, в будущем эта ситуация изменится (т.е. функциональность STA и ST GreyText перейдёт в основной Scan Tailor - что крайне необходимо сделать - чем скорее, тем лучше), и программа ST GreyText станет просто не нужна (чего я ей и желаю).
« Последнее редактирование: 14 ПЭТРам 2010, 19:44:23 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа ST GreyText
« Ответ #1 : 15 ПЭТРам 2010, 13:04:27 »
Я думаю, что создание этой программы (ST GreyText v1.0) впервые сделало Scan Tailor реальной серьёзной альтернативой СканКромсатору. Точнее, не сам Scan Tailor - а только лишь Scan Tailor, модифицированный anagnost96.

До появления ST GreyText v1.0, на мой взгляд, Scan Tailor можно было назвать лишь красивой игрушкой - но не серьёзной программой.

Более точно можно выразиться так: до появления ST GreyText v1.0 Scan Tailor можно было использовать только для сканов, не содержащих полутоновые иллюстрации (без риска серьёзной потери качества) - что, по нынешним меркам, совершенно несерьёзно (а "игрушечно").
« Последнее редактирование: 15 ПЭТРам 2010, 13:09:57 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа ST GreyText
« Ответ #2 : 25 јРав 2010, 06:08:46 »
Предлагаю расширить возможности программы еще двумя режимами:

1. На входе выводы СТ: черно-белый после сепаратора (А) и цветной/серый (Б). На выходе - на (Б) наложена маска (А). В результате получаем качественно выделенные цветные буквы, которые потом можно постеризовать и делать качественный малоцветный foreground (если не черные буквы достаточно темные - например, красные или синие).

2. (надеюсь, временный) На входе выводы СТ: смешанный (А) и цветной/серый без выравнивания освещения (Б). На выходы - зона иллюстрации в (А) заменяется соотвествующими пикселями из (Б). В результате получаем обход ситуации, когда иллюстрации доходят до края скана и СТ делает им поэтому в смешанном режиме недостаточно качественное выравнивание освещения.

Плюс добавить поддержку встроенного с 0.9.8 яркостного выделения зон.

Eugeen1948

  • Пользователь
  • **
  • Сообщений: 59
    • Просмотр профиля
    • E-mail
Re: Программа ST GreyText
« Ответ #3 : 25 јРав 2010, 12:18:40 »
Я наверное плохо понял объяснение. После бинаризации текстовой части файла можно ли "воткнуть" автоматически ранее извлеченные картинки на прежние места?

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа ST GreyText
« Ответ #4 : 25 јРав 2010, 12:57:24 »
После бинаризации текстовой части файла можно ли "воткнуть" автоматически ранее извлеченные картинки на прежние места?
Ваш вопрос тоже не очень понятен. Если речь о разделенных тексте и картинках - то их собирают уже на этапе кодирования в djvu (Djvu Imager или FSD).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа ST GreyText
« Ответ #5 : 26 јРав 2010, 09:46:14 »
57an
Цитировать
В результате получаем качественно выделенные цветные буквы, которые потом можно постеризовать и делать качественный малоцветный foreground
Я предпочитаю иной подход - см. мою программу DjVu Pal v1.0 http://www.djvu-soft.narod.ru/soft/djvu_pal_v1_0.rar (470 КБ). Думаю, так гораздо проще получить раскрашенные буквы в DjVu. Просто у меня не дошли пока руки написать о ней статью (о том, как её использовать) - поэтому она осталась незамеченной большинством.
Цитировать
В результате получаем обход ситуации, когда иллюстрации доходят до края скана и СТ делает им поэтому в смешанном режиме недостаточно качественное выравнивание освещения.
Не понял это. Может, проще, чтоб Tulon свои глюки исправлял - чем я за него?
Цитировать
Плюс добавить поддержку встроенного с 0.9.8 яркостного выделения зон.
Эту версию СТ я ещё не успел посмотреть - пока ничего не могу сказать. В последние дни всё внимание уходило на DjVu Small.

Вообще, я планирую сделать некую программу как бы "переходник" от СТ к DjVu Imager. Попробую там в т.ч. и принцип LayerTailor. Возьму за основу ST GreyText. Получится нечто вроде аналога Вашего Сепаратора, по-видимому.

Просто, раз уж СТ набирает обороты, то как же я могу не предусмотреть свой вариант сопряжения его с DjVu Imager. Свой - в смысле, чтобы я сам точно знал на 100%, как он работает (т.е. программа-"переходник"), что он даёт на выходе, и т.п.

Что будет делать такая программа - понятно - генерировать пары субсканов из продукции СТ. В т.ч. и случай, когда передний субскан-серый.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа ST GreyText
« Ответ #6 : 11 °ЯаХЫм 2010, 08:33:12 »
Цитировать
Думаю, так гораздо проще получить раскрашенные буквы в DjVu.
Что же простого в ручной обводке требующих подкраски символов? Я же предлагаю автоматизировать этот процесс. Кроме того, imho, невозможно с помощью связки WinDjView + Djvu Pal раскрасить, например, такую комбинацию
http://www.onlinedisk.ru/image/403616/redmask.png (пример взят из djvu, сделанного по предлагаемой технологии экспериментальной версией Separator'а).
« Последнее редактирование: 11 °ЯаХЫм 2010, 08:35:24 от 57an »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа ST GreyText
« Ответ #7 : 11 °ЯаХЫм 2010, 14:00:01 »
57an
Цитировать
Что же простого в ручной обводке требующих подкраски символов? Я же предлагаю автоматизировать этот процесс.
Резонно, согласен.
Цитировать
пример взят из djvu, сделанного по предлагаемой технологии экспериментальной версией Separator'а
Только я не пойму - а причём здесь Ваш Separator? Каким это образом он помогает "автоматизировать этот процесс"? Разве что если СТ автоматически отправляет красные фрагменты букв с http://www.onlinedisk.ru/image/403616/redmask.png в авто-зоны, а чёрные фрагменты букв остаются на основном скане (а потом Сепаратор отделяет одно от другого) - тогда ясно. Хотя, на первый взгляд, это кажется невероятным (если только в последнем СТ, который я ещё не смотрел, что-то не изменилось радикально в этой части).

Djvu Pal хорош для случаев простой раскраски (которых немало, если не большинство) - например, синие подписи под рисунками, красные стрелочки между иллюстрациями, и т.п. Всякие там цветные рамки.

А любой автоматический алгоритм, отделяющий красные элементы примера http://www.onlinedisk.ru/image/403616/redmask.png от его чёрных элементов, не всегда будет работать точно на 100% во всех ситуациях - так что такой инструмент ручной раскраски, как Djvu Pal, нужен. Кстати, зона раскрашивания для Djvu Pal, если правильно помню, не обязана полностью охватывать раскрашиваемый шейп - а ей достаточно лишь коснуться его (но это я уже не помню точно, так ли это, хотя так можно сделать, если это не так).

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа ST GreyText
« Ответ #8 : 11 °ЯаХЫм 2010, 14:20:24 »
Цитировать
Каким это образом он помогает "автоматизировать этот процесс"?
Каким-каким, программным образом )
Еще раз повторяю технологию - проект СТ проходится два раза - в цветном и смешанном режиме.
В смешанном бинаризуются все элементы текста - и черные, и красные. Картинки - как обычно - в зоны.
Во время обработки Separator отсекает иллюстрации, а для маски смотрит, какого цвета пиксель в цветном проекте ST. Если похож на красный - вставляет в маску красный, если нет - вставляет черный.
Пока что с позиций интерфейса похоже на http://www.onlinedisk.ru/image/403833/separator2.0.png
Скорее всего добавятся некоторые поля для указания искомых цветов и порога для их поиска. Здесь, наверное, может помочь изучение инструмента выделения по цвету в GIMP.

В общем случае ошибки не исключены. И для их коррекции, безусловно, Djvu Pal не помешает )

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа ST GreyText
« Ответ #9 : 11 °ЯаХЫм 2010, 14:39:18 »
57an
Сделайте, наконец, чёткую инструкцию по использованию Сепаратора - в виде отдельной статьи.
Цитировать
а для маски смотрит, какого цвета пиксель в цветном проекте ST. Если похож на красный - вставляет в маску красный, если нет - вставляет черный.
А что значит "похож на красный"? Плюс-минус 50 от номера цвета чисто красного (как в СК)?

Дело это, конечно, нужное. Конечно, возникают вопросы - а насколько чётко это работает, и в каких случаях...
Цитировать
Здесь, наверное, может помочь изучение инструмента выделения по цвету в GIMP.
Вот-вот, правильно.
Сделайте Сепаратор хоть .NET-независимым, что ли, для начала. :) Неужели такая уж проблема?

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа ST GreyText
« Ответ #10 : 11 °ЯаХЫм 2010, 15:22:00 »
Цитировать
Сделайте, наконец, чёткую инструкцию по использованию Сепаратора
Во-первых, все, что нужно, описано в текстовом окошке на главном окне.
Во-вторых, как думаете, куда ведет гиперссылка на главном окне?
Галка "..полностраничные - в подпапку cover" - это, скорее, хак для небольшой экономии времени и места (для его эффективного использования в проекте СТ полноцветным иллюстрациям и обложкам требуется задать родное DPI сканирования). И при последующей сборке djvu их все равно объединять с субсемплированными не полностраничными иллюстрациями..
То, что касается использования вывода "цветной/серый" - вообще только вчера появившиеся фичи (или даже их проект), так что там еще нечего документировать особо.

Цитировать
Плюс-минус 50 от номера цвета чисто красного
Почти. Не 50, а 40 ))
По крайней мере для этой книги отлично отработала логика вида
threshold  = 40;
if (colorRow[xRed] > 128)
{
    if ((colorRow[xRed] > colorRow[xBlue] + threshold) && (colorRow[xRed] > colorRow[xGreen] + threshold))
    {
        maskRow[x] = RED;
    }
}
« Последнее редактирование: 11 °ЯаХЫм 2010, 15:23:51 от 57an »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа ST GreyText
« Ответ #11 : 12 °ЯаХЫм 2010, 10:28:47 »
57an
Цитировать
Что же простого в ручной обводке требующих подкраски символов? Я же предлагаю автоматизировать этот процесс.
Начинайте данную автоматизацию с себя, а не с меня. Сначала сделайте Сепаратор .NET-независимым, и напишите к нему доку - хоть какую-нибудь - и только после этого поговорим с Вами о данном Вашем предложении.

А иначе какой же мне резон подстраиваться под никем реально не используемую (т.к. .NET) и никому не известную как с ней работать программу (без доки)?
Цитировать
Во-первых, все, что нужно, описано в текстовом окошке на главном окне.
Во-вторых, как думаете, куда ведет гиперссылка на главном окне?
Галка "..полностраничные - в подпапку cover" - это, скорее, хак для небольшой экономии времени и места (для его эффективного использования в проекте СТ полноцветным иллюстрациям и обложкам требуется задать родное DPI сканирования). И при последующей сборке djvu их все равно объединять с субсемплированными не полностраничными иллюстрациями..
То, что касается использования вывода "цветной/серый" - вообще только вчера появившиеся фичи (или даже их проект), так что там еще нечего документировать особо.
Не понял ни единого слова из данного набора фраз. Ваш Сепаратор я ни разу не пробовал - и соглашусь попробовать только при условии, если он будет .NET-независимым. Доку по использованию Сепаратора я ещё нигде не видел.
Цитировать
По крайней мере для этой книги отлично отработала логика вида
Понятно. Боюсь, это не очень надёжная логика - интуиция подсказывает мне, что это было бы уж слишком просто, чтобы всегда работать, как хочется. Либо надо чётко вручную очерчивать малую область применения данного подхода (тогда, наверное, будет работать).
« Последнее редактирование: 12 °ЯаХЫм 2010, 10:34:06 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа ST GreyText
« Ответ #12 : 12 °ЯаХЫм 2010, 10:53:23 »
Цитировать
никем реально не используемую  (т.к. .NET)
Слишком громко сказано. Поверьте, даже .NET-программы используются реально :) Например, у последней версии Букмаркера 150 скачек с офсайта (а с Softpedia - 250). Да и Separator скачивают.
Цитировать
Не понял ни единого слова из данного набора фраз.
Для понимания данного набора фраз вполне достаточно было взглянуть на приведенный выше скриншот программы  :)
Цитировать
Боюсь, это не очень надёжная логика
Согласен, но это скорее вынужденная логика, обусловленная особенностями именно данной книги. Для книги от VladimirTT (см. топик сканообработки на руборде) логика уже значительно изменена (и, видимо будет меняться). Я так понимаю, нужен регулятор глубины прокраски маски - несколько цветов на одну букву (как в книге по каллиграфии), однотонные буквы, однотонные слова (как у VladimirTT), однотонные строки, (однотонные страницы?).
« Последнее редактирование: 12 °ЯаХЫм 2010, 10:58:06 от 57an »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программа ST GreyText
« Ответ #13 : 12 °ЯаХЫм 2010, 17:05:55 »
57an
Цитировать
Поверьте, даже .NET-программы используются реально
Я думаю, что .NET следует использовать лишь тогда, когда это действительно необходимо. Если бы, скажем, установка .NET давала (к примеру) удвоение скорости работы, скажем, СТ (но при условии, что и без .NET всё работало бы - но на обычной скорости) - тогда ради бога.
Цитировать
взглянуть на приведенный выше скриншот программы
Какой? Где?
Цитировать
Я так понимаю, нужен регулятор глубины
Я не знаю. Одно ясно - задача не так проста, как может показаться на первый взгляд.

По поводу шумоподавления:

Я прочитал Вашу заметку http://tinyurl.com/yefdd5z "Методы борьбы с растром". Довольно толково. У меня есть алгоритмы, выдранные из GIMP, и переложенные на FreeImage:
Фильтр Гаусса http://www.djvu-soft.narod.ru/bookscanlib/013.htm
Выборочное гауссово размывание http://www.djvu-soft.narod.ru/bookscanlib/014.htm
Можете использовать в своих программах - чтобы не нуждаться в GIMP. Разницы нет никакой (по качеству).
С Интеллектуальная размытость сложней. Думаю, следует попробовать применить G'MIC http://gmic.sourceforge.net/
Вот пояснения:
http://jcornuz.wordpress.com/2009/02/07/gmic-next-gen-greycstoration/
Ранее эта программа называлась GREYstoration:
http://jcornuz.wordpress.com/2008/01/04/denoising-with-greycstoration/
Цитировать
либо автоматическими средствами, например командой Цвет -> Авто -> Увеличить контраст в GIMP
Возможно, этот алгоритм также можно выдрать из GIMP.

Использование Sattva Descreen нежелательно, поскольку это коммерческая программа.

И ещё вот есть:

Wavelet denoise - плагин для GIMP.
http://registry.gimp.org/node/4235
« Последнее редактирование: 12 °ЯаХЫм 2010, 17:09:39 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Программа ST GreyText
« Ответ #14 : 12 °ЯаХЫм 2010, 17:53:38 »
Цитировать
Какой? Где?
Цитировать
« Ответ #8 : 11 Апреля 2010, 14:20:24 »
Пока что с позиций интерфейса похоже на http://www.onlinedisk.ru/image/403833/separator2.0.png