PDF для решения проблемы ImageMagick - PullRequest
4 голосов
/ 14 мая 2011

Я пытаюсь конвертировать PDF в TIFF изображения для следующего распознавания. Я использую «-плотность 300x300 -depth 8» в качестве параметров. Первая проблема заключается в том, что из 500 КБ PDF-файла я получаю 72 МБ TIFF-файла. Вторая проблема - плохое качество получаемого изображения, что приводит к сбою распознавания текста. Здесь вы можете увидеть это сами. Adobe Acrobat Reader генерирует (печатает) TIFF изображение: enter image description here

ImageMaggick TIFF изображение: enter image description here

Разница огромна. Как я могу получить так же хорошо, как Adobe сгенерированное изображение с помощью ImageMaggick? Не обязательно, другие форматы также будут хороши.

UPD: я нашел опцию 'antialias'. Теперь стало намного лучше. Но результат распознавания не такой точный, как для версии Adobe.

Ответы [ 2 ]

6 голосов
/ 15 мая 2011

Мое предложение таково: используйте командную строку Ghostscript.Поскольку ImageMagick использует Ghostscript в любом случае, в фоновом режиме (технический термин IM для этого: Ghostscript является «делегатом» для некоторых преобразований, таких как PDF-> TIFF).

Вот командная строка, которая должнахорошо работают для буквенных страниц многостраничного файла PDF:

gswin32c.exe ^
   -o page_%03d.tif ^
   -sDEVICE=tiffg4 ^
   -r720x720 ^
   -g6120x7920 ^
    input.pdf

Параметр -g... контролирует абсолютную ширину + высоту выходных страниц с помощью «точек устройства» ... (и с помощью6120x7920 при разрешении 720 точек на дюйм это размер букв).

Эти страницы TIFF ...

  1. ... будут черными + белыми,
  2. ... будет иметь разрешение 720 точек на дюйм,
  3. ... будет сжато G4, а
  4. ... будет намного меньше, чем ваши несжатые 300 точек на дюйм из командной строки IM

Ваш параметр IM -depth 8 не подходит для получения хороших результатов от POV более поздней OCR, поскольку он создает оттенки серого вокруг букв, которые не помогают в этом.

Ваши результаты OCR теперь должны быть намного лучше, чем раньше.

Если ваш OCRне может обрабатывать формат TIFF G4 (в чем я сомневаюсь), тогда вы можете создать другие подформаты TIFF с помощью Ghostscript.Например:

gswin32c.exe ^
   -o page_%03d.tif ^
   -sDEVICE=tiffgray ^
   -r720x720 ^
   -g6120x7920 ^
   -sCompression=lzw ^
    input.pdf

.

gswin32c.exe ^
   -o page_%03d.tif ^
   -sDEVICE=tiff24nc ^
   -r720x720 ^
   -g6120x7920 ^
   -sCompression=lzw ^
    input.pdf

Устройство tiffgray создает 8-битный серый вывод.Устройство tiff24nc создает 8-битный RGB-вывод цвета.Оба типа TIFF, конечно, будут больше, чем tiffg4 выход.

1 голос
/ 01 августа 2017

Для европейской бумаги формата A4 и unix / linux используйте:

gs -o output.tif -sDEVICE=tiffg4 -r720x720 -sPAPERSIZE=a4 input.pdf 
...