Это довольно сложная проблема, и решение, которое работает лучше всего, будет зависеть от характеристик изображения — какой масштаб у шрифта? насколько ухудшилось изображение? Граница между деталями, которые вы хотите сохранить, и деградацией, которую вы хотите исправить, может определить только человек-оператор, поэтому для этой проблемы не существует автоматизированного универсального решения, и вы должны ожидать, что сделаете некоторые действия. эксперименты.
Основная техника заключается в том, что вы хотите настроить значение каждого пикселя в изображении так, чтобы оно было похоже на пиксели, которые его окружают. В этих терминах вы можете понять, что это просто операция размытия. Однако после того, как вы размоете изображение, у вас останутся буквы с нечеткими краями, поэтому, чтобы снова получить четкие буквы, это пороговая операция — вы устанавливаете пороговый уровень серого, и все, что светлее этого оттенка серого, становится белым, а все, что темнее, чем порог становится черным. Комбинация размытия и порогового значения дает вам широкий спектр эффектов, которые вы можете использовать, чтобы сделать текст более (или менее) разборчивым. Для данного примера изображения у меня были довольно хорошие результаты с радиусом размытия 5 и пороговым уровнем 70%.
convert QFSimZX.jpg -blur 5 -threshold 70% output.png
![размытие и порог](https://i.stack.imgur.com/obQoa.png)
При необходимости вы можете усложнить это, реализовав пользовательскую функцию размытия с оператором -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](https://i.stack.imgur.com/Q1rCd.png)
person
retroj
schedule
14.03.2014