2009-02-07 10 views
4

Принятый ответ на вопрос C++ Library for image recognition: images containing words to string рекомендуется:Как увеличить изображение до 300 DPI?

  1. укрупняется/Уменьшить ваше входное изображение 300 DPI.

Как бы это сделать ... У меня создалось впечатление, что DPI предназначен для мониторов, а не для графических форматов.

ответ

2

Я думаю, что более точный термин здесь resampling. Вы хотите, чтобы разрешение пикселей было достаточно высоким, чтобы поддерживать точный OCR. Размер шрифта (например, в points) обычно измеряется в единицах длины, а не в пикселях. Так как 72 точки = 1 дюйм, нам нужно 300/72 пикселей в точку для разрешения 300 точек на дюйм («пикселей на дюйм»). Это означает, что типичный шрифт с 12 точками имеет высоту (или, точнее, базовую линию до базовой линии в однострочном тексте) 50 пикселей.

В идеале исходные документы должны быть отсканированы с соответствующим разрешением для данного размера шрифта, чтобы шрифт на изображении составлял около 50 пикселей. Если разрешение слишком высокое/низкое, вы можете легко пересчитать изображение с помощью графической программы (например, GIMP). Вы также можете сделать это программно через графическую библиотеку, такую ​​как ImageMagick, которая имеет интерфейсы для многих языков программирования.

+3

Какой смысл делать, чтобы перепрограммировать изображение с низким разрешением на более высокое разрешение? – akaihola

1

Программное обеспечение OCR обычно предназначено для работы с «нормальными» размерами шрифтов. С точки зрения изображения это означает, что он будет искать буквы, возможно, в диапазоне от 30 до 100 пикселей. Изображения с гораздо более высоким разрешением будут создавать буквы, которые кажутся слишком большими, чтобы программное обеспечение OCR могло эффективно обрабатывать. Аналогично, изображения с более низким разрешением не будут обеспечивать достаточное количество пикселей для программного обеспечения для распознавания букв.

+0

Странная вещь в том, что я хватаю verdana размером 12 и размером с нее. Выполняется другая обработка изображений, например, создание двоичного изображения. – Zombies

+0

Обновление: WOW, увеличен размер изображения на 2, таким образом помещая его в этот целевой диапазон. Кажется, отлично работает! Все еще играю. – Zombies

2

DPI имеет смысл, когда вы связываете изображение в пикселях с физическим устройством с размером изображения. В случае OCR это обычно означает разрешение сканирования, то есть сколько пикселей вы получите за каждый дюйм сканирования. 12-точечный шрифт предназначен для печати на 12/72 дюйма на строку, а символ верхнего регистра может заполнять около 80%; таким образом, при сканировании при 300 DPI он будет составлять примерно 40 пикселей.

Многие форматы изображений имеют DPI, записанный в них. Если изображение было сканировано, это должно быть точная настройка со сканера. Если он поступает с цифровой камеры, он всегда говорит 72 DPI, который является значением по умолчанию, заданным спецификацией EXIF; это связано с тем, что камера не может знать исходный размер изображения. Когда вы создаете изображение с помощью программы обработки изображений, у вас может быть возможность установить DPI для любого произвольного значения. Это удобство для вас, чтобы указать, как вы хотите, чтобы конечное изображение использовалось, и не имеет никакого отношения к деталям, содержащимся в изображении.

Вот предыдущий вопрос, который задает детали изменения размера изображения: How do I do high quality scaling of a image?

1

«Как бы я это сделал ... У меня создалось впечатление, что dpi - это мониторы, а не графические форматы».

DPI обозначает точки на дюйм. Что это связано с мониторами? Ну, у нас есть пиксель из трех субпикселей RGB. Чем выше DPI, тем больше деталей вы втискиваете в это пространство.

DPI - полезное измерение для дисплеев и отпечатков, но ничего полезного ... на самом деле, ничего для самих форматов изображений.

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

Вы можете изменить 72 dpi на 1 dpi или 6000 точек на дюйм в формате изображения, и это не повлияет на монитор. «Upsize/downsize to 300 dpi» не имеет смысла. Повторная выборка также не изменяет DPI. Попробуйте в Photoshop, снимите флажок «Resample» при изменении DPI, и вы не увидите никакой разницы. Он НЕ будет больше или меньше.

DPI совершенно не имеет смысла для форматов изображений, IMO.

0

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

Чтобы выполнить эту работу; Я большой поклонник набора инструментов netpbm/pbmplus; инструмент для начала - pnmscale, хотя, если у вас есть растровое изображение, вы хотите рассмотреть связанные с ним инструменты, такие как pbmreduce.