Автор Тема: Обработка цветного текста  (Прочитано 27681 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Обработка цветного текста
« : 16 °ЯаХЫм 2010, 17:31:31 »
Давайте обсудим такую тему, как создание цветного текста в DjVu. Точнее, не только цветного текста - а вообще тему создания (сегментации) объектов переднего плана DjVu.

До сих пор основное внимание общественности было приковано в основном к заднему фону - до переднего плана руки как-то особо ещё не доходили.

Теперь же этот вопрос становится всё более и более актуальным.

Я со своей стороны уже ранее предложил программу DjVu Pal v1.1 http://www.djvu-soft.narod.ru/soft/djvu_pal_v1_1.rar  (472 КБ). Эта программа умеет раскрашивать любые объекты маски в произвольные цвета.
 
Какую-то идею насчёт сегментации текста предложил U235:
http://forum.ru-board.com/topic.cgi?forum=93&topic=3172&start=420#13
Цитировать
А вы не пробовали вместо преобразования цветового пространства RGB2HSV использовать преобразование Карунена-Лоэва? 
Первая компонента автоматически даст черный текст и белый фон, вторая - цветной lineart.

Вот пример обработки по этому способу:
http://forum.ru-board.com/topic.cgi?forum=93&topic=3172&start=440#15
http://www.onlinedisk.ru/file/337716/  (1,16 МБ)
Зеркало: http://ifolder.ru/17325119

Правда, я пока не понял, что это, и как это работает. А также, где взять исходные коды преобразования Карунена-Лоэва. Сам U235 это делает, по-видимому, в Матлабе.
« Последнее редактирование: 16 °ЯаХЫм 2010, 22:46:34 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Обработка цветного текста
« Ответ #1 : 16 °ЯаХЫм 2010, 20:43:03 »
У меня по кулинарному примеру (кстати, в топике, откуда вы брали скан, был пример более высокого разрешения ) возникло альтернативное предложение - добавить в Djvu Pal возможность красить не черный текст, а наоборот - оставлять черный цвет как есть, но область закрасить в выбранный цвет.
Это позволило бы бинаризовать проблемную текстовую область с помощью пользовательской зоны соответствующего типа и залить ее уже в djvu-книге с помощью модернизированного Djvu Pal.
Правда, похоже, что это задача другого уровня, чем раскраска маски, т.к. требует добавления в маску дополнительных объектов..
« Последнее редактирование: 16 °ЯаХЫм 2010, 20:57:57 от 57an »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Обработка цветного текста
« Ответ #2 : 16 °ЯаХЫм 2010, 22:57:49 »
57an
Цитировать
добавить в Djvu Pal возможность красить не черный текст, а наоборот - оставлять черный цвет как есть, но область закрасить в выбранный цвет.
Ничего я не понял.

Вообще сам я считаю DjVu Pal не самым удачным решением. Потому что, подход, используемый в DjVu Pal, в принципе не очень удобен.

Более правильный подход по работе с цветным текстом мне представляется следующим:

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

Также должен быть предусмотрен аналог пользовательских зон - но только для объектов переднего плана (аналогично DjVu Pal, только для сканов, а не DjVu).

Цветной текст пусть бы бинаризовался, как и чёрно-белый - а после этого он должен раскрашиваться ранее вычисленным усреднённым цветом.

Программа documenttodjvu прекрасно обработает такие подготовленные сканы (белый фон, чёрный текст, и отдельные блоки монохромного цветного текста) - и сама полностью безошибочно создаст правильную ракраску текста в итоговом DjVu (т.е. чанк FGbz).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Обработка цветного текста
« Ответ #3 : 16 °ЯаХЫм 2010, 23:18:46 »
Кстати, аналогичную задачу умеет решать cpaldjvu http://djvu.sourceforge.net/doc/man/cpaldjvu.html . То есть эта утилита также самостоятельно определяет монохромный цветной текст на подготовленном скане, и сама раскрашивает его в создаваемом ею DjVu-файле - путём создания соответствующего чанка FGbz.

Эта программа использует алгоритм т.н. квантизации http://en.wikipedia.org/wiki/Color_quantization - для определения усреднённого цвета цветного текста. А вот как она находит цветной текст на скане - я не знаю. Но это можно глянуть в её исходниках, и спросить Леона Боту.

Квантизация - это один из видов постеризации (превращение полноцветных объектов в малоцветные) http://en.wikipedia.org/wiki/Posterization . В Лептонике, к примеру, есть немало алгоритмов квантизации - см. http://www.leptonica.com/color-quantization.html .

В доке к cpaldjvu ещё есть интересный момент:
Цитировать
This program should be rewritten as a pre-processor for csepdjvu.
Я бы это немного перефразировал: функциональность cpaldjvu следует включить в minidjvu.

А documenttodjvu такую функциональность уже и так имеет - так что связка DjVu Small + DjVu Imager хоть сейчас готова правильно кодировать в DjVu сканы, содержащие монохроматический цветной текст.

Осталось лишь научить СТ готовить такой монохроматический цветной текст на чёрно-белых сканах - желательно в более-менее автоматизированном виде.

А какие-то огрехи сегментации цветного текста можно будет исправлять потом, уже в готовом DjVu - при помощи DjVu Pal.
« Последнее редактирование: 16 °ЯаХЫм 2010, 23:52:05 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Обработка цветного текста
« Ответ #4 : 17 °ЯаХЫм 2010, 06:45:21 »
http://www.onlinedisk.ru/file/381197/
Можно ли с помощью documenttodjvu (и на каком профиле, если можно)
добиться размещения всех цветных областей tif-файла из архива в слое foreground?
Djvu-файл в архиве - это максимум, чего получилось добиться с помощью Djvu Small у меня.
Хотя FSD такое позволяет.
« Последнее редактирование: 17 °ЯаХЫм 2010, 06:53:26 от 57an »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Обработка цветного текста
« Ответ #5 : 18 °ЯаХЫм 2010, 08:33:54 »
Инструкция к ST Separator 2.0

Насчет вашей идеи использования прямоугольного выделения увеличенного изображения цветного символа - идея неплохая. Нужно подумать над ее реализацей.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Обработка цветного текста
« Ответ #6 : 18 °ЯаХЫм 2010, 11:50:55 »
57an
Цитировать
Можно ли с помощью documenttodjvu (и на каком профиле, если можно) добиться размещения всех цветных областей tif-файла из архива в слое foreground?
Не знаю. Пробуйте сами - на разных параметрах. Читайте хелп к DjVu Small. А ещё лучше спросить у Arcand - он поднаторел в этих вопросах, см. http://www.djvu-soft.narod.ru/scan/corel_scan.htm .
Цитировать
Хотя FSD такое позволяет.
Я им вообще не пользуюсь - т.к. во-первых, его можно полностью эквивалентно заменить через DjVu Small + DjVu Imager, но, самое главное - FSD вынуждает нас расширить круг используемых варезных программ (за счёт использования msepdjvu). А мне хотелось бы свести весь варез к одному-единственному documenttodjvu (раз уж от него избавиться пока не получается). Т.е. варез - это зло (в нашем деле), так пусть уж это зло будет минимально возможным (в самом деле, весь спектр потребных для нас DjVu-программ можно сделать исключительно на базе documenttodjvu и DjVu Libre).

Цитировать
Инструкция к ST Separator 2.0
Очень хорошо.  :) И даже на вид выглядит весьма недурно - с картинками, и т.п.

По инструкции:
Цитировать
При выборе Djvu Imager к файлам иллюстраций добавляется суффикс .sep.
Это уже излишне, так как DjVu Imager уже давно принимает на входе файлы с произвольным именем (без ".sep") - достаточно включить в Опциях галку "Произвольные файлы" и выбрать значение "Нет".

PS Я подумал, что т.н. "Метод Minor'а" http://www.djvu-soft.narod.ru/scan/low_color_djvu.htm теперь уже совершенно полностью утратил хоть какую бы то ни было значимость.

То есть, с началом использования djvumake (что было недоступно во времена Minor), у нас теперь имеются гораздо более широкие и гибкие возможности - которые позволяют нам не только сделать в точности то, что делал Minor - но даже и во многом превзойти им достигнутое.
Цитировать
Насчет вашей идеи использования прямоугольного выделения увеличенного изображения цветного символа - идея неплохая.
Не понял я, что Вы имеете в виду, но я тоже постараюсь подумать над этими вопросами. Мне представляется, что какая-то обработка цветного текста (с целью подготовить его к последующему авто-отсегментированию в передний план DjVu) должна производиться именно в СТ. Только как именно это делать в СТ - мне пока неясно. Буду думать, чтобы предложить.
« Последнее редактирование: 18 °ЯаХЫм 2010, 12:09:41 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Обработка цветного текста
« Ответ #7 : 18 °ЯаХЫм 2010, 13:48:34 »
57an
Цитировать
Хотя FSD такое позволяет.
Здесь надо бы уточнить: при каких параметрах?
Такой результат достигается при авто-сегментации посредством msepdjvu? Или же все цветные объекты были заранее вручную отсегментированы в задний фон - а msepdjvu лишь сделал из всего этого DjVu?

Информация о msepdjvu:
http://www.djvu-soft.narod.ru/scan/low_color_djvu.htm
http://www.djvu-soft.narod.ru/scan/arcand_msepdjvu.htm

Цитировать
Можно ли с помощью documenttodjvu (и на каком профиле, если можно) добиться размещения всех цветных областей tif-файла из архива в слое foreground?
Вот что у меня получилось:
http://ifolder.ru/17346973  (18 КБ)

Я закодировал p0027poster.tif в DjVu Small с такими параметрами:
Цитировать
--shape-filter-level=0 --bg-subsample=6 --jb2-format=color
Профиль - user B/W (300 dpi)
Получилось почти то же самое. Правда, несколько хуже. Почему-то маска сжалась гораздо хуже. Ваш пример FSD.djvu - у него маска имеет 600 dpi (а у p0027poster.tif - разрешение 300 dpi), и ещё FSD.djvu имеет
Цитировать
0,0 Kb   'INCL'   Indirection chunk (dict0002.iff).
Интересно, влияет ли это на размер маски? Я так и не понял.

В Вашем примере:
Цитировать
11,5 Kb   'Sjbz'   JB2 foreground mask (2440x3280, 600 dpi).
В моём:
Цитировать
16,5 Kb   'Sjbz'   JB2 foreground mask (2440x3280, 300 dpi).
Ни фига себе - у меня на целых 5 КБ больше! :o :-\ А почему - непонятно.
Плюс, в DjVu Small bg-subsample оказалось, может принимать максимальное значение = 6. А в FSD.djvu bg-subsample = 12. Тут очевидно, что DjVu Small уступает (какого чёрта они не сделали макс. bg-subsample = 12 в documenttodjvu, непонятно).
« Последнее редактирование: 18 °ЯаХЫм 2010, 14:28:11 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Обработка цветного текста
« Ответ #8 : 18 °ЯаХЫм 2010, 15:33:12 »
Кажется, я понял, почему у Вас маска меньше на 5 КБ: всё дело в словаре разделённых символов.

В Вашем FSD.djvu, видимо, присутствует также и инкапсулированный djbz-словарь. Причём факт присутствия встроенного словаря разделённых символов не отображается в окошке "Информация о странице" (если щёлкнуть по правой кнопке на первой странице) (поскольку такой словарь хранится между страницами в отдельном чанке).

Зато это видно в меню Файл - Информация о документе... - у первой (и единственной) страницы FSD.djvu размер - 12079 байт, но, внимание, "Полный размер" всего файла (в том же окошке) - 19883 байт. Получается, размер словаря - 7804 байт или 7,6 КБ.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Обработка цветного текста
« Ответ #9 : 18 °ЯаХЫм 2010, 15:36:27 »
Да, Вы правы - дело в словаре, чтобы его увидеть, нужно поставить галку "Показывать все файлы" в окошке "Информация о документе".
В FSD есть особенность - он не кодирует, если сканов меньше двух. Поэтому я в качестве второго поставил копию первого. И кодировал msepdjvu с общим словарем, а потом лишнюю страницу просто удалил.
Если кодировать без общего словаря, то в FSD получим (в режиме Disable halftone detection) суммарный размер чанков:
600dpi, msepdjvu - 16.4 Кб
300dpi, msepdjvu - 17.1 Кб
600dpi, csepdjvu - 17.3 Кб
300dpi, сsepdjvu - 17.3 Кб
Djvu Small с Вашими настройками - 17.0 Кб
При этом в файлах, закодированных в msepdjvu и в Djvu Small есть немножко BackGround'a, и я не нашел, можно ли его вообще не создавать...
http://www.onlinedisk.ru/file/409828/

« Последнее редактирование: 18 °ЯаХЫм 2010, 15:38:29 от 57an »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Обработка цветного текста
« Ответ #10 : 18 °ЯаХЫм 2010, 15:49:50 »
57an
Цитировать
При этом в файлах, закодированных в msepdjvu и в Djvu Small есть немножко BackGround'a, и я не нашел, можно ли его вообще не создавать...
Нет, нельзя. Т.е. нельзя, если присутствует передний план (чанк либо FGbz, либо FG44). Я тоже на этот момент когда-то напоролся - когда делал DjVu Imager - и мне Леон Боту ответил, что "это запрещает спецификация DjVu".

Практически можно просто отрезать задний фон у готовых DjVu - и вклеивать туда задний фон "чистый белый лист" с 12-ой кратностью (хотя возиться с этим неохота). :)

Но ответ "можно", если у нас присутствует только маска - т.е. чанк Sjbz. Такие DjVu создаются, если взять 1-битный чб скан, и закодировать в DjVu Small с профилем "user B/W (300 dpi)".

Кстати, я сейчас попробовал расширить максимальный bg-subsample в DjVu Small с 6 до 12. И Вы знаете - получилось!  :D Создался нормальный DjVu - с ещё чуточку меньшим размером (на 198 байт). Так что можно делать новую подверсию DjVu Small... :)
« Последнее редактирование: 18 °ЯаХЫм 2010, 15:59:01 от monday2000 »

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: Обработка цветного текста
« Ответ #11 : 18 °ЯаХЫм 2010, 16:24:35 »
Цитировать
Так что можно делать новую подверсию DjVu Small
Возможно, тогда имеет смысл оформить найденные комбинации настроек как новые профили кодирования.

monday2000

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

Это может сделать любой желающий - путём ручной модификации текстового файла documenttodjvu.conf - в составе DjVu Small.
Если туда добавить ещё профиль (в конец файла documenttodjvu.conf и грамотно по его синтаксису ) - то он появится в списке профилей при следующем запуске DjVu Small.

Изначально предполагалось, что пользователи будут сами делать свои варианты documenttodjvu.conf (со своими профилями) - а также обмениваться друг с другом самодельными профилями - без того, чтобы мне делать для каждого нового профиля новую версию DjVu Small (разве мне за этим угнаться?).

Профили можно делать (в визуальном режиме) также при помощи Configuration Manager - из состава DEE 5.1 (в LE-версии он тоже есть).