Python ValueError: слишком много значений для распаковки (ожидается 2) FLOODFILL - PullRequest
1 голос
/ 20 марта 2020

Я пытаюсь пройти курс обучения OpenCV и использую предоставленный исходный код. Я сталкиваюсь с этой ошибкой:

Traceback (most recent call last):
  File "segmented.py", line 34, in <module>
    result = segment(image)
  File "segmented.py", line 22, in segment
    retval, rect = cv2.floodFill(inv_edges, None, (0, 0), 0)
ValueError: too many values to unpack (expected 2)

Вот код:

import cv2
import numpy as np

def segment(image):

# convert BGR image to grayscale
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
image_gray = cv2.GaussianBlur(image_gray, (5, 5), 0)

# get contours
edges = cv2.Canny(image_gray, 20, 60)
contours, _ = cv2.findContours(edges, mode=cv2.RETR_EXTERNAL,
                               method=cv2.CHAIN_APPROX_SIMPLE)

# compute object mask
cv2.drawContours(edges, contours, -1, 255, 2)
inv_edges = cv2.bitwise_not(edges)
retval, rect = cv2.floodFill(inv_edges, None, (0, 0), 0)
mask = cv2.bitwise_or(edges, inv_edges)

# masking object
result = np.zeros(image.shape, dtype='uint8')
result[mask > 0, :] = image[mask > 0, :]

return result

if __name__ == '__main__':
image = cv2.imread('adonis.jpg')
result = segment(image)
cv2.imwrite('adonisseg.jpg', result)

как решить проблему? Я использую Open CV версии 4.2.0

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