Использование инструментов DjVu для разделения фона / переднего плана? - PullRequest
4 голосов
/ 23 декабря 2010

Сначала я занимался разработкой собственного алгоритма удаления фона , но похоже, что популярный формат документа DjVu имеет свои собственные функции разделения на передний план и фон, если я могу понять только, какработать с ним.

Цитирование документов DjVu:

DjVu имеет 3 основных "режима":

  1. DjVuText - черно-белый (битовый)документы
  2. DjVuPhoto - непрерывные тоновые изображения, такие как фотографии, отсканированные графические изображения и т. д.
  3. DjVuLayered - цветные документы, такие как журналы, каталоги, исторические документы,и т. д.

Сжатие в DjVu в режиме DjVuLayered приведет к созданию файлов размером от 30 КБ до 100 КБ, из которых от 5 до 40 КБ будут использоваться для слоя переднего плана, а остальные дляфоны и картинки.

А для интеграции программного обеспечения:

DjVuLibre включает автономный просмотрщик, плагин для браузера (для Mozilla, Firefox, Konqueror, Netscape, Galeon и Opera)и инструменты командной строки (декодеры, кодировщики, утилиты).

Есть идеи, как мне работать с инструментами DjVu для разделения фона и переднего плана данного отсканированного документа?

1 Ответ

6 голосов
/ 23 декабря 2010

Если документ сканируется со сканера, тогда изображение является простым растровым изображением. Там нет слоев или объектов как таковых. Просто пикселей и больше пикселей. Чтобы превратить DjVu в многоуровневый документ, он должен быть сгенерирован как многоуровневый документ.


Отредактированный ответ:

Извините, я не знал. Я провел небольшое исследование, и вы правы. Однако в настройках кодирования DjVu необходимо включить параметр наложения. Он сообщает кодировщику использовать специальный алгоритм обработки изображений для поиска объектов переднего плана и фона и сохраняет их в отдельных слоях.

http://djvu.sourceforge.net - DjViLibre - это библиотека C ++, которая будет делать то, что вам нужно.

WinDjView - http://windjview.sourceforge.net/ - прекрасная программа для просмотра файлов DjVu, построенная на DjVuLibre. Он имеет возможность просмотра объектов переднего плана или фона. Так что это был бы хороший способ проверить, насколько хорош алгоритм, прежде чем копаться в коде c ++.

Я бы порекомендовал загрузить некоторые отсканированные файлы TIFF / JPEG в http://any2djvu.djvuzone.org/, а затем использовать WinDjView, чтобы увидеть результаты разделения вперед / назад. Я загрузил 1 цветной документ JPEG и был впечатлен результатами.

Исходный код для WinDjView доступен по адресу http://windjview.cvs.sourceforge.net/viewvc/windjview/windjview/ - RenderThread.cpp - Функция CRenderThread :: Render () - это код разделения / просмотра слоя для функций просмотра переднего плана / фона в WinDjView.

Также есть документ в формате PDF, объясняющий, как работает алгоритм - «ОБЩАЯ СХЕМА СЕГМЕНТАЦИИ ДЛЯ СЖАТИЯ ДОКУМЕНТА DJVU ...» - Если вы выполняете поиск в Google с помощью «сегментации Винсента Диджеу», а затем нажимаете ссылку «Быстрый просмотр» 1-го результата, то вы можете прочитать PDF. Оригинальный PDF больше не доступен.

Мне придется самому еще провести тестирование. Интересно, сколько стоят лицензионные сборы за коммерческие приложения?

Надеюсь, это ответит на ваш вопрос немного лучше, чем моя первая попытка. Я посмотрел DjVu, когда он впервые вышел, и по какой-то причине упустил из виду эту функцию.


Дополнительная информация

Я загрузил еще около 10 документов и пришел к следующим выводам. Ч / б изображения с разрешением 300 точек на дюйм не могут быть обработаны DjVu в передний / задний слои. Вся страница ч / б преобразованного изображения содержится только на переднем плане. Когда вы загружаете в any2djvu, он сначала спрашивает вас, черно-белый или цветной документ. Когда вы выбираете ч / б, вы теряете опцию фоновой обработки, которая поддерживает мою теорию, ч / б не поддерживается для автоматического разделения фона. Разделение вперед / назад работает на серых и цветных изображениях. У меня недостаточно отсканированных изображений, чтобы проверить, насколько хорошо оно работает.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...