Техника, которую вы могли бы использовать - размыть изображение. Судя по тому, как оно выглядит, изображение уже имеет низкое разрешение и размыто, так что вам не нужно будет слишком сильно размыть изображение. Всякий раз, когда мне нужно использовать функцию размытия в Opencv, я обычно выбираю размытие по Гауссу, поскольку его техника размытия каждого пикселя, а также каждого окружающего пикселя великолепна. Как только изображение размыто, я бы установил порог или адаптивный порог изображения. Как только вы доберетесь до этого места, изображение, которое должно быть показано, должно быть в основном жесткими линиями с небольшими кусочками коротких линий между ними. Затем увеличьте пороговое изображение настолько, чтобы соединить биты с множеством жестких граней. Как только расширение будет выполнено, найдите контуры этого изображения и отсортируйте изображение по его высоте. Поскольку я предполагаю, что положение этих чисел не изменится, вам нужно будет только отсортировать ваши контуры по высоте изображения. После того, как вы отсортировали свои контуры, просто создайте ограничивающие рамки над ними и прочитайте текст оттуда.
Однако, если вы хотите сделать это быстрым и грязным способом, вы всегда можете просто создать вручную собственные ROI вокруг каждой области, которую вы хотите прочитать, и делайте это таким образом.
Первый метод
- Размытие по Гауссу изображения
- Порог изображения
- Расширить изображение
- Найти контуры
- Сортировать контуры по высоте
- Создать ограничивающие рамки вокруг соответствующих контуров
Второй метод
- Вручную создавайте области интереса вокруг области, с которой вы хотите прочитать текст