Каковы наилучшие параметры для запуска ImageMagick для преобразования PDF низкого качества в изображения (для распознавания текста)

У меня есть несколько PDF низкого качества. Я хотел бы использовать OCR - чтобы быть более точным Ocropus , чтобы получить от них текст. Для этого я сначала использую ImageMagick - инструмент командной строки для преобразования pdf в изображения - чтобы преобразовать эти pdf в jpg или png.

Однако ImageMagick производит изображения очень низкого качества, и Ocropus с трудом распознает что-нибудь. Я хотел бы узнать, каковы наилучшие параметры для работы с низкокачественными PDF-файлами для обеспечения максимально возможного качества изображений для оптического распознавания текста.

Я нашел эту страницу , но я не знаю когда начать.

8
задан Kurt Pfeifle 31 August 2010 в 22:45
поделиться

2 ответа

Вы можете узнать о подробных настройках «делегатов» 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, вы должны прежде всего знать две вещи:

  1. По умолчанию, если вы не укажете дополнительный параметр, Ghostscript будет выводить изображения с разрешением 72 dpi. Вот почему в ответе Карла было предложено добавить -density 600, что говорит Ghostscript использовать разрешение 600 dpi для вывода изображения.
  2. Обходной путь IM для вызова Ghostscript дважды для преобразования сначала PDF => PS, а затем PS => PNG является настоящей ошибкой. Потому что вы никогда не выигрываете и едва ли сохраняете качество на первом этапе, но очень часто теряете некоторые из них. Причины:
    • PDF может работать с прозрачностью, чего не может PostScript.
    • PDF может встраивать шрифты TrueType, чего не может Ghostscript. и т.д.стр. Преобразование в направлении 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"...

14
ответ дан 5 December 2019 в 08:50
поделиться

-density 600 или около того должно дать вам то, что вам нужно.

5
ответ дан 5 December 2019 в 08:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: