I am getting python for,
_, threshold = cv2.threshold(gray_roi, 3, 255, cv2.THRESH_BINARY_INV)
_, contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = sorted(contours, key=lambda x: cv2.contourArea(x), reverse=True)
Traceback (most recent call last):
File "/Users/hissain/PycharmProjects/hello/hello.py", line 17, in <module>
_, contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
ValueError: not enough values to unpack (expected 3, got 2)
How to resolve it?
According to cv2.findContours
documentation, the function return only 2 values. You try to unpack 3.
Remove the first _
(unwanted value) from the second line to match the signature from the documentation.
_, threshold = cv2.threshold(gray_roi, 3, 255, cv2.THRESH_BINARY_INV)
contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = sorted(contours, key=lambda x: cv2.contourArea(x), reverse=True)
Generally speaking, when you get this Python error message:
ValueError: not enough values to unpack (expected x got y)
Search where you try to unpack y
elements, and try to fix it by unpacking x
elements.