2013-11-15 4 views
1

Я использую Abbyy FineReader для ScanSnap для распознавания нескольких отсканированных PDF-файлов. Программное обеспечение утверждает, что оно сохраняет оригинальные PDF-изображения. Размер файла PDF до OCR и пост-OCR почти идентичны, что хорошо.Как удалить сглаживание в PDF-изображениях?

После того как программное обеспечение выполнено, все изображения в формате PDF отображаются сглаживанием в Acrobat X. Навигация по страницам намного медленнее, чем раньше, и когда я увеличиваю/уменьшаю изображение, сначала обращаются к тому, что выглядит как анти- aliasing, прежде чем быстро перейти на сглаженные изображения.

Left: Scanned PDF/Right: after OCR with Abbyy enter image description here

Я хотел бы получить исходные изображения без сглаживания обратно. Интересно, что когда я открываю одну страницу из сглаженного PDF-документа в Photoshop, нет сглаживания, и изображение выглядит как левое.

Мой ограниченный опыт программирования в формате PDF заставляет меня поверить, что Abbyy, вероятно, устанавливает какой-то флаг сглаживания для каждого изображения во время обработки OCR. Как отключить этот флаг?

Любые указатели на полезные идеи были бы высоко оценены.

+1

В случае ваших образцов документов исходный файл имеет изображение в формате JPEG, в то время как файл OCR имеет один в формате JPEG2000. Остается неизвестным, отличаются ли различия в внешнем виде от Reader с использованием различных движков рендеринга или из-за фактического изменения изображения. – mkl

ответ

1

Существует /Interpolate true запись в словаре изображения OCR-эд версии, и это то, что вызывает «сглаживание». Является ли это (а не JPEG2000 вместо сжатия JPEG) причиной замедления, вы проверяете достаточно большие файлы.

Чтобы отменить этот ключ, лучше всего отключить его при создании файла, а если это невозможно, - написать и запустить небольшую программу на подходящем языке.

Но, поскольку ваш файл не имеет «сжатых объектов», а оскорбительный ключ находится в открытом виде внутри файла, в духе «выполненной работы» вы можете просто обработать ваш файл, например. вот так:

perl -M-encoding -0777pe "s!/Interpolate true!' 'x17!ge" <in.pdf >out.pdf 
+0

Очень интересно, огромное спасибо! Ясно, что это отвечает на мой вопрос. К сожалению, как вы и подозреваете, Acrobat все еще намного медленнее в PDF-файлах после OCR, даже с отключенным сглаживанием. Вероятно, результат рендеринга JPEG2000 от Acrobat. Я пойду на стратегию и вернусь. Сейчас я думаю, что замена изображений JPEG2000 на исходные изображения JPEG может быть многообещающим путем (игнорируя проблему вращения @mkl). –

+1

@Frank, это происходит со мной сейчас, разве это не полный скриншоты Acrobat (не Reader) в вашем посте? Почему же вы можете просто сохранить без JPEG2000 и Interpolation от него (в пакетном режиме тоже). Фильтр для «Interpolate» в Fixups Preflight, и вы его найдете, затем сохраните как «оптимизированный pdf» и выберите соответствующее сжатие изображения. – user2846289

+0

Спасибо, что упомянул Preflight, я никогда раньше не использовал его, отличный инструмент. К сожалению, качество изображения после JPEG2000> JPEG-преобразования PDF-оптимизатором Acrobat не является удовлетворительным; единственным приемлемым качеством будет параметр «Максимальный», что приведет к большому размеру файла. Я решил отложить проблему и сохранить как до, так и после OCR версии всех PDF-файлов. Там достаточно места. Давайте посмотрим, сколько хаоса он создает. –

2

После того, как программное обеспечение сделано, все изображения в формате PDF отображаются сглаживанием в Acrobat X. Навигация по страницам намного медленнее, чем раньше, и когда я увеличиваю/уменьшаю изображение, сначала просматриваются изображения, сглаживания, прежде чем быстро перейти на сглаженные изображения.

На самом деле в исходном файле 2013_11_15_22_51_31.pdf содержит изображения JPEG, а файл OCR'ed 2013_11_15_22_51_31_OCR.pdf содержит JPEG2000 изображение.

Сравнивая их со сторонними зрителями, становится ясно, что изображение в OCR-файле не является по своей сути анти-псевдонимом. Кроме того, в PDF-документе нет четкого указателя, в котором PDF-программы, предназначенные для чтения PDF, будут применять сглаживание к изображению JPEG2000. Таким образом, Adobe Reader, как представляется, автоматически создает изображения JPEG и JPEG2000 по-разному, применяя сглаживание к последнему, но не к первому.

Сравнение двух изображений в деталях, однако, становится ясно, что эти изображения не идентичны, но вместо этого изображение в OCR'ed PDF слегка повернуто.

Я предполагаю, что Abbyy FineReader признал, что исходное отсканированное изображение неправильно ориентировано. Таким образом, он слегка повернул его, чтобы исправить эту ориентацию.

Таким образом, замена изображения в версии OCR на оригинальную версию не предусмотрена: из-за поворота информация OCR частично отчасти будет отключена.

Что вы можете попробовать, это перекодировать изображение JPEG2000 в JPEG и заменить это изображение в OCR'ed на этот перекодированный. Это будет означать некоторую потерю качества, но, скорее всего, вы сможете избавиться от сглаживания таким образом.

Имейте ввиду, что изображение JPEG2000 немного больше, чем изображение JPEG, подходящее для вращения.

PS: Как указывал @VadimR, действительно есть /Interpolate true entry в словаре изображений OCR-ed версии Я пропустил, глядя на файл. Это, по-видимому, не является основной проблемой, замедляющей рендеринг.

The original JPEG

+0

Интересная находка, огромное спасибо! Таким образом, Abbyy по крайней мере конвертирует JPEG в JPEG2000. Я хотел бы попробовать ваше предложение. Не могли бы вы указать на программу, которую можно было бы использовать для анализа, извлечения и замены PDF-изображений? –

+1

Для себя я бы сделал это, написав небольшую утилиту Java, используя некоторую приличную библиотеку PDF. Обмен тогда легко. – mkl