Pythonはcv2を呼び出すときの問題を正常に解決しました:ValueError:アンパックするのに十分な値がありません(予期される3、2を取得しました)

問題の説明

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つの値に変化します。opencvfindContours

したがって、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)、問題は正常に解決されます。

おすすめ

転載: blog.csdn.net/ywsydwsbn/article/details/108441948