【发布时间】:2020-10-14 02:03:46
【问题描述】:
我正在尝试在 opencv 4.4.0 版上使用 cv2.findContours()。 (我使用 Python 3.8.5 版)但它会引发错误,我无法弄清楚。我不确定代码有什么问题。这里有一些背景:
-
根据 OpenCV,cv2.findContours() 的语法如下: Python: 轮廓,层次结构= cv.findContours(图像,模式,方法[,轮廓[,层次结构[,偏移量]]])
-
我查找了一些示例以确保如何正确实现它,以下是我的发现: 示例 1 _,轮廓,_ = cv2.findContours(binary_image,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
示例 2 (_, cnts, _) = cv2.findContours(thresholded.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
这些来自我在网上找到的工作项目,有很多这样的例子。所以,我试图实现我从视频中获得的一些代码,以获得对该主题的一些理解,但它似乎对我不起作用,我找不到原因。代码如下:
import cv2
import numpy as np
imagen =cv2.imread('lettuce.jpg')
gray = cv2.cvtColor(imagen,cv2.COLOR_BGR2GRAY)
_,binary = cv2.threshold(gray,100,255,cv2.THRESH_BINARY)
image,contours,hierarchy = cv2.findContours(binary,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(image,contours, -1, (0,255,0),3)
错误: 回溯(最近一次通话最后): 第 8 行,在 图像,轮廓,层次结构 = cv2.findContours(二进制,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE) ValueError: 没有足够的值来解包(预期 3,得到 2)
【问题讨论】:
-
查看答案,如果解决了,请作为答案