opencv : ValueError: too many values to unpack (expected 2)

基于opencv-python 执行 cv2.findContours()函数出现以下错误提示:

Traceback (most recent call last):

contours, hierarchy = cv2.findContours(gray_temp, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
ValueError: too many values to unpack (expected 2)

代码如下:

# find connected domain in image
def findContours(image):
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    gray_temp = gray.copy()
    contours, hierarchy = cv2.findContours(gray_temp, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    contoursSize = np.size(contours)
    return contours, hierarchy, contoursSize
    #print("contoursSize is ", contoursSize)

原因: 

基于opncv4.1.0的  findContours 是可以接受两个返回值的

但是基于opencv3.4.15的 findContours是需要接受三个返回值的

修改为:binary, contours, hierarchy = cv2.findContours(gray_temp, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 

 

  • 24
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
yolox报错"ValueError: too many values to unpack (expected 2)"是因为在代码的某一行中尝试解包的变量数量与预期不符。根据引用的错误信息,可以看出是在调用一个函数时出现的错误。该函数实际返回了三个值,而调用该函数的地方只使用了一个变量去接受返回值,导致变量数量不匹配的错误。 要解决这个问题,你可以通过修改代码来确保接受返回值的变量数量与函数返回的值的数量相匹配。你需要检查调用该函数的地方,并确保有足够的变量去接受返回值。在这种情况下,你可能需要使用一个元组或列表来接受返回的多个值。 例如,你可以将函数返回的多个值存储在一个元组中,然后使用相应数量的变量去解包这个元组。这样,就可以避免"ValueError: too many values to unpack"的错误。 请注意,具体的修改方法可能因你的代码结构和逻辑而有所不同。建议你仔细检查报错的代码行并进行相应的修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [关于 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_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [解决Dataloader报错:ValueError: too many values to unpack (expected 2)](https://blog.csdn.net/hjtsml_future/article/details/121783567)[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_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python遍历输出字典时报错:ValueError: too many values to unpack (expected 2)](https://blog.csdn.net/m0_46151559/article/details/120662974)[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_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值