--------------------------------------------------------------------------- ValueError Traceback (most recent call last) C:\Users\ADMINI~1\AppData\Local\Temp/ipykernel_24500/2922187187.py in <module> 16 mask_red = cv2.medianBlur(mask_red, 7) # 中值滤波 17 mask=cv2.bitwise_or(mask_green,mask_red)#三部分掩膜进行按位或运算 ---> 18 image1,cnts1,hierarchy1=cv2.findContours(mask_red,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)#轮廓检测 19 image3,cnts3,hierarchy3=cv2.findContours(mask_green,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) 20 for cnt in cnts1: ValueError: not enough values to unpack (expected 3, got 2)
时间: 2023-08-15 20:56:02 浏览: 88
这个错误是由于 `cv2.findContours()` 函数的返回值发生了变化导致的。在 OpenCV 3.x 版本中,`findContours()` 函数的返回值是三个,分别是图像、轮廓列表和层次结构。但在 OpenCV 4.x 版本中,返回值只有两个,分别是轮廓列表和层次结构。
你可以尝试将代码中的以下两行修改一下,以适应 OpenCV 4.x 版本的返回值:
```python
cnts1, hierarchy1 = cv2.findContours(mask_red, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
cnts3, hierarchy3 = cv2.findContours(mask_green, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
```
修改后的代码应该可以正常运行了。如果还有其他问题,请随时提问。
阅读全文