Как убрать сглаживание в PDF изображениях?
Я использую Abbyy FineReader for ScanSnap для распознавания нескольких отсканированных PDF-файлов. Программное обеспечение утверждает, что оно сохраняет оригинальные изображения PDF. Размеры файлов PDF до OCR и после OCR практически идентичны, что хорошо.
После завершения работы программного обеспечения все изображения PDF отображаются в Acrobat X с сглаживанием. Навигация по страницам происходит намного медленнее, чем раньше, и когда я увеличиваю или уменьшаю масштаб, изображения сначала переходят к тому, что выглядит как версия перед сглаживанием, а затем быстро переход на сглаженные изображения.
Слева: отсканированный PDF / справа: после распознавания текста с Abbyy
Я хотел бы получить исходные изображения без сглаживания обратно. Интересно, что когда я открываю одну страницу из PDF-файла с сглаживанием в Photoshop, сглаживания не происходит, и изображение выглядит как левое.
Мой ограниченный опыт программирования в PDF позволяет мне верить, что Abbyy, вероятно, устанавливает какой-либо флаг сглаживания для каждого изображения во время обработки распознавания. Как мне снять этот флаг?
Любые указатели на полезные идеи будут высоко ценится.
2 ответа
Есть /Interpolate true
запись в словаре изображений версии OCR, и это то, что вызывает "сглаживание". Является ли это (а не JPEG2000 вместо сжатия JPEG) причиной замедления, вы проверяете достаточно большие файлы.
Чтобы отменить установку этого ключа, лучше всего было бы отключить его при создании файла и, если это невозможно, написать и запустить небольшую программу на подходящем языке.
Но, поскольку ваш файл не содержит "сжатых объектов", а вызывающий его ключ находится в открытом виде внутри файла, в духе "работа выполнена быстро", вы можете просто обработать ваш файл, например, так:
perl -M-encoding -0777pe "s!/Interpolate true!' 'x17!ge" <in.pdf >out.pdf
После завершения работы программного обеспечения все изображения PDF отображаются в Acrobat X с сглаживанием. Навигация по страницам происходит намного медленнее, чем раньше, и когда я увеличиваю или уменьшаю масштаб, изображения сначала переходят к тому, что выглядит как версия перед сглаживанием, а затем быстро переход на сглаженные изображения.
На самом деле в исходном файле 2013_11_15_22_51_31.pdf содержится изображение JPEG, а в файле http://home.arcor.de/frankysfirst/2013_11_15_22_51_31_OCR.pdf содержится изображение JPEG2000.
Сравнивая их в сторонних средствах просмотра, становится ясно, что изображение в файле OCR по сути не является сглаженным. Кроме того, в PDF нет явного флага, указывающего средствам просмотра PDF применять сглаживание к изображению JPEG2000. Таким образом, Adobe Reader, похоже, автоматически отображает изображения JPEG и JPEG2000 по-разному, применяя сглаживание к последнему, но не к первому.
Однако, при подробном сравнении обоих изображений становится ясно, что эти изображения не идентичны, а вместо этого изображение в PDF-документе с OCR слегка поворачивается.
Я предполагаю, что Abbyy FineReader распознал, что оригинальное отсканированное изображение не правильно ориентировано. Таким образом, он слегка повернул его, чтобы исправить эту ориентацию.
Таким образом, замена изображения в версии OCR с оригинальной версией не возможна: из-за поворота информация OCR будет частично не соответствовать.
Вы можете попробовать перекодировать изображение JPEG2000 в JPEG и заменить изображение в версии с распознаванием текста на эту перекодированную. Это будет означать некоторую потерю качества, но, скорее всего, вы сможете избавиться от сглаживания таким образом.
Имейте в виду, однако, что изображение JPEG2000 немного больше, чем изображение JPEG, чтобы приспособиться для поворота.
PS: Как отметил @VadimR, в словаре изображений в версии для распознавания текста, которую я пропустил при просмотре файла, действительно есть /Interpolate истинная запись. Это, похоже, не главная проблема, замедляющая рендеринг.