Python OpenCV DrawContours - PullRequest
       12

Python OpenCV DrawContours

0 голосов
/ 01 сентября 2018

Я пытаюсь создать программу для расшифровки капч определенного типа.

Мой подход заключается в разделении капчи на отдельные символы (всегда состоящие из 5, только маленьких букв и цифр) и сохранении каждого символа в отдельной папке, чтобы иметь базу данных для обучения, а затем посмотреть, как она будет работать.

Я столкнулся с проблемой при попытке найти контуры с помощью openCV.

Вот мой код:

import numpy as np
import cv2

im = cv2.imread('4n2gd.png')
imcopy = im.copy()
imgray = cv2.cvtColor(imcopy,cv2.COLOR_BGR2GRAY)

img = cv2.medianBlur(imgray,5)
th = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,11,2)

finimg = cv2.bitwise_not(th)
im2, contours, hierarchy = cv2.findContours(finimg,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

cv2.drawContours(im, contours, -1, (0,255,0), 1)
cv2.imwrite('modified.png',im)

Исходное изображение: enter image description here

изображение с нарисованными контурами: enter image description here

Дело в том, что я ожидаю, что CHAIN_APPROX_SIMPLE будет делать прямоугольники вокруг каждого набора, если черные пиксели, а скорее он просто функционирует так же, как CHAIN_APPROX_NONE.

Что я должен сделать, чтобы изменить это?

...