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

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

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

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

3 ответов


вы можете узнать о подробных настройках 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-файл => ПС преобразования, а затем использует Ghostscript снова сделать ПС => преобразование в PNG. Работает, но это не самый эффективный способ если вы знаете, что Ghostscript может делать PDF = > PNG в один перейти. И быстрее. И в гораздо лучшем качестве.

об обработке IM преобразования PDF в изображения с помощью делегата Ghostscript вы должны прежде всего знайте две вещи:--16-->

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

gs \
  -sDEVICE=jpeg \
  -o output/page_%03d.jpeg \
  -r600 \
  -dJPEGQ=95 \
  /path/to/your/input.pdf

(версия команды Linux). Это прямое преобразование позволяет избежать промежуточного формата PostScript, который может иметь потерял шрифт TrueType и информацию об объекте прозрачности, которые были в исходном файле PDF.


[*] ох! Сначала я пропустил ваш тег "linux"...


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


по крайней мере, два других инструмента, которые вы можете рассмотреть:

  • pdfimages, который поставляется с пакетом poppler-utils, позволяет легко извлекать изображения из PDF без их деградации.
  • pdfsandwich, который может дать вам файл OCR'D, просто запустив pdfsandwich inputfile.pdf. Возможно, вам придется настроить параметры, чтобы получить достойный результат. См.официальная страница для получения дополнительной информации.