[Python解决cv2.findContours函数返回值异常的问题]

news/2024/11/14 18:27:58/

[Python解决cv2.findContours函数返回值异常的问题]

在使用OpenCV进行图像处理时,经常会使用到cv2.findContours()函数来查找物体轮廓。然而,有时候当我们调用该函数时,会出现 “too many values to unpack (expected 2)” 的错误提示。这个错误通常是由于函数返回值与我们期望的不匹配造成的。

解决这个问题的方法很简单,只需要将函数返回值中的第一个元素去掉即可。具体地,我们可以使用以下代码实现:

# 导入必要的库
import cv2# 加载图像文件
img = cv2.imread('example.jpg')# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 使用二进制阈值处理图像
ret,thresh = cv2.threshold(gray,127,255,0)# 查找轮廓
_, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)# 绘制轮廓
cv2.drawContours(img, contours, -1, (0,255,0), 3)# 显示结果
cv2.imshow("Contours", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的代码中,我们做了以下几件事情:

  1. 导入了cv2库并加载了一张示例图像;
  2. 将图像转换为灰度图像;
  3. 使用二进制阈值将图像二值化;
  4. 调用cv2.findContours()函数查找轮廓,并将返回值中的第一个元素(图像)去掉;
  5. 绘制轮廓ÿ

http://www.ppmy.cn/news/325388.html

相关文章

cv2.findContours、cv2.drawContours

cv2.findContours()是非常常用的方法,在文字检测例如dbnet的后处理中,通常预测产生的概率图或者二值图要产生检测的边界,通常使用findContours方法找出边界在还原,除此之外一些对边缘的监督学习制作的标签也往往使用findContours方…

python cv2.findContours参数测试

findContours是连通域处理中最常用的函数之一,顾名思义,是实现图像中连通域的查找定位。结合cv2.drawContours/cv2.contourArea/cv2.boundingRect/cv2.minAreaRect等函数可以实现连通域轮廓的描绘,面积计算,外接四边形和最小外接四…

pyhton opencv中cv2.findContours与cv2.drawContours

最近在做关于图像识别的东西,用到了寻找轮廓函数cv2.findContours和绘制轮廓函数cv2.drawContours 先看看cv2.findContours的定义: 如果嫌啰嗦(不想看英语),直接下拉,下面我有写用法与总结 def findContou…

cv2.drawContours()、cv2.findContours()、cv2.boundingRect(img)函数用法解析

cv2.drawContours()函数的功能是绘制轮廓,输入变量如下: cv2.drawContours(image, contours, contourIdx, color, thicknessNone, lineTypeNone, hierarchyNone, maxLevelNone, offsetNone) 第一个参数image表示目标图像, 第二个参数contour…

绘制轮廓 cv2.findContours函数及参数解释

cv2 绘制轮廓 cv2.findContours()注意事项mode参数method参数offset:(可选参数)返回值 cv2.findContours() def findContours(image, mode, method, contoursNone, hierarchyNone, offsetNone): # real signature unknown; restored from __doc__"…

opencv:图像轮廓检测 cv2.findContours() 与 cv2.drawContours()

1 cv2.findContours() OpenCV-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓。 cv2.findContours(image, mode, method, contoursNone, hierarchyNone, offsetNone)参数描述返回image寻找轮廓的图像,注意输入的图片必须为二值图片。若输入的图片为…

cv2.findContours()返回函数详解

对于cv2.findContours() 函数,相信很多人都在使用,利用其进行轮廓的寻找,之后利用cnt[num],对第num个轮廓进行操作,但是该函数返回的三个参数具体表示的是什么呢? 下面就进行详细介绍,为了能够…

OpenCv查找轮廓-cv2.findContours()函数

contours, hier cv2.findContours(img,mode,method) 参数: 1. img: 要寻找轮廓的图像 2. mode:轮廓的检索模式(四种) 1.cv2.RETR_EXTERNAL 表示只检测外轮廓 2.cv2.RETR_LIST 检测的轮廓不建立等级关系 3.cv2.RETR_CCOMP 建立两个等级的轮…