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

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

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

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

Ответы [ 3 ]

14 голосов
/ 01 сентября 2010

Чтобы узнать подробные настройки «делегатов» 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 за один go. И быстрее. И в гораздо лучшем качестве.

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

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

5 голосов
/ 01 сентября 2010

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

0 голосов
/ 08 октября 2015

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

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