Я пытаюсь пройти курс обучения 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