2013-06-10 18 views
2

У меня есть этот файл здесь: http://imgur.com/QFSimZXСоздание текста более удобным для чтения Imagemagick

, что при взгляде на него, человек может видеть, что он говорит СОСНА (N) на верхней строке и PI на второй линии. Проблема заключается в том, что при использовании tesseract-ocr для чтения того, что текст говорит, что он имеет довольно плохие результаты. У меня много таких изображений, и мне нужно автоматизировать этот процесс, поэтому делать это вручную - это не идея. Я использовал imagemagick, чтобы получить его в текущем состоянии, но хотел бы знать, есть ли способ сделать этот образ более читаемым, возможно, связав тесные области черного. Я почти ничего не знаю об обработке изображений, поэтому я не знаю, с чего начать поиск. Если кто-нибудь знает способ сделать это более читаемым, я бы очень признателен ему.

ответ

1

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

Основной метод заключается в том, что вы хотите настроить значение каждого пикселя в изображении, чтобы оно было похоже на пиксели, которые его окружают. Положите эти термины, вы можете понять, что это просто операция размытия. После того, как вы размыли изображение, вы оставили буквы с нечеткими краями, чтобы снова получить четкие буквы, это пороговая операция - вы устанавливаете пороговый уровень серого цвета, и все светлее, чем оттенок серого, становится белым и все темнее, чем порог становится черным. Комбинация blur plus threshold дает вам широкий спектр эффектов, которые вы можете использовать, чтобы сделать текст более (или менее) разборчивым. Для примера приведенного изображения у меня были неплохие результаты с радиусом размытия 5 и пороговым уровнем 70%.

convert QFSimZX.jpg -blur 5 -threshold 70% output.png 

blur and threshold

Вы можете получить более сложным, чем это в случае необходимости, путем реализации пользовательской функции размытия с оператором -fx. Fx мощный, но несколько сложный, и вы можете прочитать об этом здесь: http://www.imagemagick.org/script/fx.php. Я попробовал быстрое выражение fx, которое заполнило пиксель, основанный сначала на его выше и ниже соседи, а затем на его левом и правом соседях. Этот метод действительно позволяет точно настроить, какие пиксели считаются при вычислении размытия:

convert QFSimZX.jpg -monochrome \ 
    -fx 'p[0,-1]+p[0,1] >= 2 ? 1 : 0' \ 
    -fx 'p[-1,0]+p[1,0] >= 2 ? 1 : 0' \ 
    output.png 

fx method

+0

Этот ответ устарело, как Imagemagick теперь имеет лучший инструмент для этого под названием морфологии. – retroj

Смежные вопросы