Python cvzone实现手势缩放调用findHands出现ValueError报错如何解决?
问题解决方法
报错原因
你本地安装的cvzone库版本与教程使用的版本API不兼容:
- 教程使用的旧版本
cvzone中,findHands()方法仅返回2个值:检测到的手部数据列表、标注后的图像,所以可以用hands, img正常解包 - 你本地安装的新版本
cvzone中,findHands()方法新增了第三个返回值:手部检测框坐标列表,你按旧版写法只准备了2个变量接收返回值,就会触发too many values to unpack报错
修复方案
方案1:直接适配新版API(无需修改库版本,推荐)
把代码中报错的行:
hands, img = detector.findHands(img)
修改为如下写法即可,第三个返回值用下划线接收表示不需要使用:
hands, img, _ = detector.findHands(img)
方案2:降级cvzone到兼容旧版本
执行如下命令安装和教程匹配的cvzone版本,原有代码无需修改:
pip install cvzone==1.5.6
内容的提问来源于stack exchange,提问作者gasper_thebeast101
相关产品推荐
相关产品推荐

