Нахождение контуров с помощью opencv (обработка изображений) - PullRequest
0 голосов
/ 25 февраля 2019

Я работал над проектом «Детектор номерного знака автомобиля», который я реализую, используя opencv.После обновления моих Python Version и opencv я получаю ошибку при поиске контура, как в:

imgContours, contours, npaHierarchy = cv2.findContours(imgThreshCopy, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)   # find all contours
ValueError: not enough values to unpack (expected 3, got 2)

Это код, который я использовал:

def findPossibleCharsInScene(imgThresh):
listOfPossibleChars = []                # this will be the return value

intCountOfPossibleChars = 0

imgThreshCopy = imgThresh.copy()

imgContours, contours, npaHierarchy = cv2.findContours(imgThreshCopy, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)   # find all contours

height, width = imgThresh.shape
imgContours = np.zeros((height, width, 3), np.uint8)

for i in range(0, len(contours)):                       # for each contour

    if Main.showSteps == True: # show steps ###################################################
        cv2.drawContours(imgContours, contours, i, Main.SCALAR_WHITE)
    # end if # show steps #####################################################################

    possibleChar = PossibleChar.PossibleChar(contours[i])

    if DetectChars.checkIfPossibleChar(possibleChar):                   # if contour is a possible char, note this does not compare to other chars (yet) . . .
        intCountOfPossibleChars = intCountOfPossibleChars + 1           # increment count of possible chars
        listOfPossibleChars.append(possibleChar)                        # and add to list of possible chars
    # end if
# end for

if Main.showSteps == True: # show steps #######################################################
    print("\nstep 2 - len(contours) = " + str(len(contours)))  # 2362 with MCLRNF1 image
    print("step 2 - intCountOfPossibleChars = " + str(intCountOfPossibleChars))  # 131 with MCLRNF1 image
    cv2.imshow("2a", imgContours)
# end if # show steps #########################################################################

return listOfPossibleChars
# end function

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

1 Ответ

0 голосов
/ 25 февраля 2019

Я думаю, что функция cv2.findContours () возвращает только 2 значения.Вы должны изменить код на следующий

contours, npaHierarchy = cv2.findContours(imgThreshCopy, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
...