У меня есть несколько PDF низкого качества. Я хотел бы использовать OCR - чтобы быть более точным Ocropus , чтобы получить от них текст. Для этого я сначала использую ImageMagick - инструмент командной строки для преобразования pdf в изображения - чтобы преобразовать эти pdf в jpg или png.
Однако ImageMagick производит изображения очень низкого качества, и Ocropus с трудом распознает что-нибудь. Я хотел бы узнать, каковы наилучшие параметры для работы с низкокачественными PDF-файлами для обеспечения максимально возможного качества изображений для оптического распознавания текста.
Я нашел эту страницу , но я не знаю когда начать.
Вы можете узнать о подробных настройках «делегатов» ImageMagick (внешних программ, которые использует IM, например, Ghostscript), набрав
convert -list delegate
(в моей системе это список из 32 различных команд). чтобы увидеть, какие команды используются для преобразования в PNG, используйте это:
convert -list delegate | findstr /i png
Хорошо, это было для Windows. Вы не написали какую ОС используете. [*] Если вы работаете в Linux, попробуйте следующее:
convert -list delegate | grep -i png
Вы обнаружите, что IM создает PNG только из ввода PS или EPS. Так как же IM получает (E)PS из вашего PDF-файла? Легко:
convert -list delegate | findstr /i PDF
convert -list delegate | grep -i PDF
Ах! Он использует Ghostscript для преобразования PDF => PS, а затем снова использует Ghostscript для преобразования PS => PNG. Работает, но не самый эффективный способ , если вы знаете, что Ghostscript может делать PDF => PNG за один ход. И быстрее. И в гораздо лучшем качестве.
О том, как IM обрабатывает преобразование PDF в изображения с помощью делегата Ghostscript, вы должны прежде всего знать две вещи:
-density 600
, что говорит Ghostscript использовать разрешение 600 dpi для вывода изображения.PDF => PS
, а затем PS => PNG
является настоящей ошибкой. Потому что вы никогда не выигрываете и едва ли сохраняете качество на первом этапе, но очень часто теряете некоторые из них. Причины:
PS => PDF
не так критично....) Вот почему я предлагаю вам конвертировать ваши PDF-файлы за один раз в PNG (или JPEG) с помощью Ghostscript напрямую. И используйте последнюю версию 8.71 (скоро будет выпущена: 9.01) Ghostscript! Вот примеры команд:
gswin32c.exe ^
-sDEVICE=pngalpha ^
-o output/page_%03d.png ^
-r600 ^
d:/path/to/your/input.pdf
(Это командная строка для Windows. В Linux используйте gs
вместо gswin32c.exe
и \
вместо ^
.) Эта команда ожидает найти подкаталог output
, где будет храниться отдельный файл для каждой страницы PDF. Для создания файлов JPEG хорошего качества попробуйте
gs \
-sDEVICE=jpeg \
-o output/page_%03d.jpeg \
-r600 \
-dJPEGQ=95 \
/path/to/your/input.pdf
(версия команды Linux). Это прямое преобразование позволяет избежать промежуточного формата PostScript, который мог потерять информацию о шрифте TrueType и объекте прозрачности, которая была в исходном файле PDF.
[*] Ой! Сначала я не увидел ваш тег "linux"...
-density 600
или около того должно дать вам то, что вам нужно.