galaxyman 09.02.2010 18:46
How-to`s — Улучшение качества DJVU книг
Очень часто попадаются интересные книги в формате djvu. Но к сожалению качество некоторых книг не очень хорошее. К основным дефектам можно отнести:серый фон на страницах;
некоторые страницы перевернуты на 90-180 град;
страницы идут попарно - разворотами, такие неудобно читать на небольшом экране нетбука.
Как исправить такую книгу расскажу под катом.
Перед началом работы убедитесь, что установлены пакеты:
libtiff-tools, djvulibre-bin и imagemagick.
Итак имеем файл книги inputfile.djvu. Примерно такого качества:
Преобразуем его сначала в многостраничный tiff:
Сжатие без компрессии (размер файла может достичь до нескольких Гб! в зависимости от количества страниц и качества книги)
ddjvu -v -format=tiff inputfile.djvu output.tiff
Сжатие с компрессией (размер файла до 500 Мб)
ddjvu -v -format=tiff -quality=80 inputfile.djvu output.tiff
Если книга небольшая, до 200 стр., то параметр качества -quality=80 можно не указывать, при этом tiff получиться без компрессии, а значит, с меньшей потерей качества при преобразовании. У меня с книгой более 500 стр не получилось разрезать с помощью tiffsplit созданный без компрессии 2 Гб-ый tiff.
Теперь преобразуем многостраничный тиф в множество одностраничных - каждую страницу в отдельный файл:
tiffsplit inputfile.tiff outputdir/
Еще одно преобразование, на этот раз из tiff в png. Для чего? Объясняю чуть ниже.
for f in *; do convert $f png/$f.png; done
На следующем этапе нам понадобиться Scan Tailor - программа для подготовки электронных книг. В Ubuntu 9.10 она есть в репозитории. Для пользователей других дистрибутивов: ищите в своих репозиториях, если нет, то Scan Tailor легко собирается из исходников, предварительно почитайте, что нужно установить по зависимостям. Есть версия для Windows.
sudo apt-get install scantailor
Вот теперь нам и понадобятся png файлы, так как tiff Scan Tailor не читает.
Запускаем Scan Tailor, добавляем все png файлы в проект и проходим по нужным пунктам оптимизации. Поскольку программа локализована, не вижу смысла подробно останавливаться на всех пунктах оптимизации. Scan Tailor позволяет: исправлять ориентацию страниц, разрезать развороты отсканированных страниц, корректировать угол наклона страниц, выделять полезную область страниц, при этом очищая поля, поменять разрешение документа, выбрать способ компресии для изображения: черно-белое, цветное-оттенки серого, смешанное. Наиболее важный и интересный пункт это "Разрезка страниц". Насколько я знаю, есть еще одна программа для обработки отсканированных изображений под nix системы, позволяющая разрезать развороты книг - unpaper. Однако добиться ее корректной работы у меня не получилось (страницы не резались, если кто то работает с unpaper оставьте в коментах рабочие опции при разрезании разворотов страниц). Наилучший, самый чистый результат получается при выборе в пункте "Вывод" режима "Черно-белый". Однако этот способ коррекции не подходит, если в книге есть фотографии, тут нужно подбирать режим: "Цветной-серый" либо "Смешанный".
После завершения работы результаты складываются в папку "out".
В консоли переходим в папку out и запускаем скрипт сборки djvu файла.
На выходе получаем такой результат (файл output.djvu):
Разница в качестве исходного и обработанного файла заметна невооруженным глазом.
Эта статья кросспост из моего блога.
нельзя,текстовый слой это каша после osr с минимальным форматированием
если нужен текст, извлек картинки и в cuniform или http://finereader.abbyyonline.com/ + finereader работает под wine
если нужен текст, извлек картинки и в cuniform или http://finereader.abbyyonline.com/ + finereader работает под wine
вытащить текст из такого djvu - как раз не проблема (например с помощью djvutxt из djvulibre),
проблема в том как к этому тексту потом в нужных местах привязать соответствующие картинки
хотя еще можно взять вывод от djvutoxml и преобразовать его к нужному виду,
но XML-конструкции которые он генерирует мне не очень нравятся:
проблема в том как к этому тексту потом в нужных местах привязать соответствующие картинки
хотя еще можно взять вывод от djvutoxml и преобразовать его к нужному виду,
но XML-конструкции которые он генерирует мне не очень нравятся:
<LINE>
<WORD coords="259,4794,397,4757">реальным</WORD>
<WORD coords="424,4794,688,4756">опытом.</WORD>
<WORD coords="716,4794,864,4745">Если</WORD>
<WORD coords="893,4794,973,4757">вы</WORD>
<WORD coords="998,4811,1115,4757">уже</WORD>
<WORD coords="1142,4811,1488,4758">проделали</WORD>
<WORD coords="1516,4796,1617,4758">все</WORD>
<WORD coords="1644,4806,1765,4758">это,</WORD>
<WORD coords="1790,4805,2018,4757">данная</WORD>
<WORD coords="2046,4795,2230,4757">книга</WORD>
<WORD coords="2258,4795,2359,4757">все</WORD>
<WORD coords="2386,4811,2579,4757">равно</WORD>
<WORD coords="2607,4794,2905,4756">окажется</WORD>
<WORD coords="2932,4794,3046,4756">вам</WORD>
<WORD coords="3075,4795,3282,4756">полез-</WORD>
</LINE>
хотя что это я, парсить как раз просто будет
спать надо больше..
спать надо больше..
спасибо автору. мне обязательно пригодится, т.к. много читаю за компом.
DjVu (от фр. d?j? vu — «уже виденное») — технология сжатия изображений с потерями, разработанная специально для хранения сканированных документов — книг, журналов, рукописей и прочее, где обилие формул, схем, рисунков и рукописных символов делает чрезвычайно трудоёмким их полноценное распознавание. Также является эффективным решением, если необходимо передать все нюансы оформления, например, исторических документов, где важное значение имеет не только содержание, но и цвет и фактура бумаги; дефекты пергамента: трещинки, следы от складывания; исправления, кляксы, отпечатки пальцев; следы, оставленные другими предметами.
Имелось в виду "сканы часто попадаются в djvu". Интернеты сломали мой русский язык, пойду сопру у младшего брата учебник по риторике.
ещё нужны как минимум пакеты: libtiff-tools, djvulibre-bin и imagemagick
возможно ли переконвертировать djvu с текстовым слоем в pdf, но не как набор картинок ?
хотя даже не обязательно в pdf, в тот же html например.