Извлечение текста из блокнота

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

введите здесь описание изображения

Он отлично работает, потому что у меня простой фон. Но затем я проверил это с этим изображением:

введите здесь описание изображения

Из-за линий блокнота на заднем плане я не могу извлечь только текст. Хотя текст красный, я превращаю все изображения в оттенки серого или иногда в порог, поэтому все становится черным, как строки в блокноте. Таким образом, цвет текста не имеет значения. Итак, мой вопрос: может ли кто-нибудь дать мне совет или возможное решение о том, как справиться с таким фоном, чтобы извлечь текст. Я действительно не хочу использовать метод скользящего окна. заранее спасибо


person Abraxas    schedule 28.12.2016    source источник


Ответы (1)


Я решил попробовать еще раз с функциональностью HoughLinesP в OpenCV, которая на этот раз дала мне гораздо более многообещающий и удовлетворительный результат. Вот фрагмент кода, который я использовал для удаления большинства строк:

import cv2
import numpy

img = cv2.imread('thresh.png')
edges = cv2.Canny(img, 50, 150, apertureSize=3)
minLineLength = 0
maxLineGap = 5
lines = cv2.HoughLinesP(edges, 1, numpy.pi / 180, 100, minLineLength, maxLineGap)

for x in range(len(lines)):
    for x1, y1, x2, y2 in lines[x]:
        cv2.line(img, (x1, y1), (x2, y2), (0, 0, 0), 2)

cv2.imwrite('houghlines3.jpg', img)

Дополнительная информация: thresh.png — это изображение, в котором я храню пороговую версию исходного изображения. Работает вся эта штука так: она находит линии на изображении и окрашивает их в черный цвет (потому что в моем пороге то, что близко к белому, становится черным и наоборот). Вот как он очищает линии.

PS: Надеюсь, я помог кому-то! Ваше здоровье!

person Abraxas    schedule 28.12.2016