LINUX.ORG.RU

DjVuL & PDFbeads

 ,


0

1

PDFbeads - генератор PDF из изображений, написанный на ruby, использующий сегментацию вида image=(mask&foreground&backround).

DjVuL - алгоритм «Multi-scale binarization», входит в состав imthreshold (Linux fork BookScanLib.ru).

PDFbeads представляет собой комбайн обработки изображений. Из-за этого использовать его совместно с другими утилитами совсем непросто. Сегментация в нём производится очень примитивно. Переделать его под использование сторонних сегментаторов пока не удалось. Поиск альтернативных генераторов PDF, использующих сегментацию изображения дал нулевой результат.

В данном топике будет показан метод, использующий генерацию PDF с помощью PDFbeads, но при этом сегментация производится по алгоритму DjVuL. Это позволяет получать гораздо более компактные PDF (даже без использования jbig2 и jpeg2000).

Предполагается наличие папки со сканами в формате PNG, из которых надо сгенерировать компактный PDF (в нашем случае папка «~/scans»).

1) Сегментация изображений:

$ cd ~/scans
$ for tpng in *.png; do imthreshold-tdjvul "$tpng" "${tpng%.png}.black.tiff" "${tpng%.png}.fg.ppm" "${tpng%.png}.bg.ppm"; done

2) Кодирование foreground&backround в jpeg:

$ for tppm in *.ppm; do cjpeg -outfile "${tppm%.ppm}.jpg" "$tppm"; done
$ rm -v *.ppm

3) Генерация PDF

$ pdfbeads -r 300 -m G4 -b JPEG -o book.pdf

PS:

1) Зачастую исходные сканы требуют предварительную обработку (шумоподавление). Для этого рекомендуется использовать утилиту imthreshold-fpmean. Есть также возможность очистки черно-белых масок (*.black.tiff), для этого используется утилита imthreshold-fdespeckle.

2) Кодирование в jpeg не производится непосредственно во время сегментации, так как предполагается возможность использования различных кодеров с различными параметрами (mozcjpeg, например, или jpge).

Deleted

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.