Как мне увеличить изображение, чтобы оно имело 300 DPI? - PullRequest
4 голосов
/ 08 февраля 2009

Принятый ответ на вопрос C ++ Библиотека для распознавания изображений: изображения, содержащие слова в строку Рекомендуем вам:

  1. Увеличение / уменьшение входного изображения до 300 DPI.

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

Ответы [ 5 ]

2 голосов
/ 08 февраля 2009

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

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

Вот предыдущий вопрос, который спрашивает детали изменения размера изображения: Как мне сделать качественное масштабирование изображения?

2 голосов
/ 08 февраля 2009

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

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

1 голос
/ 08 февраля 2009

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

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

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

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

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

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

1 голос
/ 08 февраля 2009

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

0 голосов
/ 08 февраля 2009

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

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

...