問題の説明
Pythonでは、インポートcv2パッケージのfindContours関数を呼び出します。呼び出しは次のとおりです。
# 寻找轮廓
bimg, contours, hier = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
次の問題が発生します。
Traceback (most recent call last):
File "C:\Users\Y\Desktop\transformation_demo.py", line 9, in <module>
bimg, contours, hier = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
ValueError: not enough values to unpack (expected 3, got 2)
問題分析
問題のopencvバージョンは、関数が3つの値である場合に返されるopencv
呼び出しのレガシーであるため、関数が2つの値である場合、呼び出しのfindContours
新しいバージョンが返されます。findContours関数の受け渡し値は、3つの値から2つの値に変化します。opencv
findContours
したがって、opencvのバージョンが高すぎて3つの値を渡すと、エラーが報告されます。
問題が解決しました
にbimg, contours, hier = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
変更されcontours, hier = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
、問題は正常に解決されます。