Résoudre l'erreur ValueError : pas assez de valeurs pour décompresser (attendu 3, obtenu 2)

Résoudre l'erreur ValueError : pas assez de valeurs pour décompresser (attendu 3, obtenu 2)

Message d'erreur:

Traceback (most recent call last):
  File "E:/workspace/code/detect/ShapeDetect.py", line 86, in <module>
    ld.analysis(src)
  File "E:/workspace/code/detect/ShapeDetect.py", line 18, in analysis
    out_binary, contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)  #
ValueError: not enough values to unpack (expected 3, got 2)


进程已结束,退出代码为 1

Lors de l'utilisation d'opencv pour la reconnaissance des points clés et l'extraction du contour des bords, l'erreur ci-dessus s'affiche. La raison de l'erreur est que le nombre de valeurs de retour définies par la fonction est incohérent avec le nombre de valeurs de retour réellement attribuées lors de l'appel de la fonction. Ce problème est en fait causé par l'incohérence de la version d'opencv. La nouvelle version d'opencv (opencv4) n'a besoin que de deux paramètres lors de l'appel de findContours. Vous devez supprimer le premier paramètre (out_binary dans la mauvaise ligne de code dans cet article). Vous n'avez besoin de supprimer qu'un paramètre pour le résoudre parfaitement ; opencv3 a besoin de trois paramètres, modifier l'environnement d'exploitation et utiliser opencv3.6 peut également être résolu.

Solution

méthode 1

Supprimez le premier paramètre, c'est-à-dire que le code est modifié en :
contours, hiérarchie = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)

Méthode 2

Modifier la version opencv, jusqu'à opencv3

Je suppose que tu aimes

Origine blog.csdn.net/qq_31460605/article/details/127858911
conseillé
Classement