Какие лучшие параметры для запуска 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-->
- по умолчанию, если вы не даете дополнительный параметр, Ghostscript будет выводить изображения с разрешением 72dpi. Вот почему ответ Карла предложил добавить
-density 600
который говорит Ghostscript использовать разрешение 600 dpi для вывода изображения. - объезд 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"...
по крайней мере, два других инструмента, которые вы можете рассмотреть:
-
pdfimages
, который поставляется с пакетомpoppler-utils
, позволяет легко извлекать изображения из PDF без их деградации. -
pdfsandwich
, который может дать вам файл OCR'D, просто запустивpdfsandwich inputfile.pdf
. Возможно, вам придется настроить параметры, чтобы получить достойный результат. См.официальная страница для получения дополнительной информации.