Как заставить тессеракт работать с разными типами изображений? - PullRequest
1 голос
/ 16 июня 2020

Я работаю над задачей распознавания di git с использованием Tesseract и OpenCV. Я использовал его и пришел к решению, которое специально c для конкретного изображения. Если я изменю свое изображение, я не получу правильных результатов. Мне нужно изменить пороговое значение в соответствии с изображением. Я сделал следующие шаги:

  1. Обрезка изображения для поиска подходящей области

  2. Изменение изображения в оттенках серого

  3. Использование размытия по Гауссу
  4. Принятие соответствующего порога
  5. передача изображения через Tesseract

Итак, у меня вопрос, как я могу сделать свой код обобщенным c, т.е. можно использовать для разных изображений без обновления кода. enter image description here Во время работы с этим изображением я обработал как

imggray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imggray,(5,5), 0)
imgDil=cv2.dilate(imgBlur,np.ones((5,5),np.uint8),iterations=1)
imgEro=cv2.erode(imgDil,np.ones((5,5),np.uint8),iterations=2)
ret,imgthresh=cv2.threshold(imgEro,28,255, cv2.THRESH_BINARY )

И для этого изображения как

imggray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imggray,(5,5), 0)
imgDil=cv2.dilate(imgBlur,np.ones((5,5),np.uint8),iterations=0)
imgEro=cv2.erode(imgDil,np.ones((5,5),np.uint8),iterations=0)
ret,imgthresh=cv2.threshold(imgEro,37,255, cv2.THRESH_BINARY )

Мне пришлось изменить значение итераций и минимальный порог, чтобы получить правильные результаты. Что может быть решением, чтобы не менять значения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...