Opencv ValueError: not enough values to unpack (expected 3, got 2)解决办法

本文解决了一个在使用OpenCV4.0进行轮廓检测时遇到的常见错误:not enough values to unpack (expected 3, got 2)。错误源于OpenCV4.0改变了findContours函数的返回值数量,从三个减少到两个。文章提供了两种解决方案:一是将代码修改为适应新版本,二是降级到旧版本的OpenCV。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题背景

有些人在用我去年的毕设运行时(感谢QAQ),报错

Opencv ValueError: not enough values to unpack (expected 3, got 2)

当时就觉得是某个库的版本不对。但一直没注意。现在统一说一下。

解决办法

https://stackoverflow.com/questions/54164630/want-to-find-contours-valueerror-not-enough-values-to-unpack-expected-3-go

原因是用的是Opencv4.0,把返回值从三个改回两个了

contours,hierachy=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

要么各位大佬改回去,要么我自己升级到最新版改代码(可能会鸽)。QAQ。。。

 

转载于:https://www.cnblogs.com/yinghualuowu/p/10613336.html

这个错误通常发生在解包操作中,当你尝试将一个序列的元素分配给多个目标变量时,但是目标变量的数量多于序列的元素数量时会出现这个错误。例如,在你提供的引用中,报错信息是"ValueError: not enough values to unpack (expected 3, got 2)",意味着你尝试将一个包含3个元素的序列分配给了3个目标变量,但是实际上只有2个元素可供分配。 解决这个错误的方法是确保解包的目标变量数量与序列的元素数量相匹配。在引用中提供了一个示例代码,演示了如何正确解包序列。你可以使用切片操作来选择序列中的前几个元素,并将它们赋值给相应的目标变量。例如,使用`a, b = numbers[:2]`来解包序列的前两个元素。 在引用中提到了另一种类似的错误,即"too many values to unpack (expected 2)",这意味着你尝试将一个返回3个元素的函数的结果赋值给了只有2个目标变量的变量。要解决这个错误,你需要确保目标变量的数量与函数返回的元素数量相匹配。 总结起来,要解决"ValueError: not enough values to unpack (expected 2, got 0)"这个错误,你需要检查解包操作的目标变量数量和序列或函数返回的元素数量是否匹配,并做出相应的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [解决报错ValueError: not enough values to unpack (expected 3, got 2)](https://blog.csdn.net/qq_31460605/article/details/127858911)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [遇到:ValueError: not enough values to unpack (expected 2, got 1) 错误应该如何解决](https://blog.csdn.net/q7w8e9r4/article/details/132139829)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [关于 Python opencv 使用中的 ValueError: too many values to unpack](https://download.csdn.net/download/weixin_38661650/13995213)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值