cv2.boundingrect()
时间: 2023-04-22 07:00:20 浏览: 147
cv2.boundingRect()是OpenCV中的一个函数,用于计算轮廓的边界矩形。该函数接受一个轮廓作为输入,并返回一个矩形,该矩形完全包含轮廓。矩形的左上角坐标是矩形的左上角点的坐标,宽度和高度是矩形的宽度和高度。
相关问题
cv2.boundingRect
函数 cv2.boundingRect() 是 OpenCV 中一个用于计算轮廓的边界框的函数。给定一个轮廓,该函数返回一个矩形,该矩形完全包含轮廓。该函数的输入参数是一个轮廓,输出参数是一个矩形,该矩形的左上角坐标 (x,y),以及宽度和高度 (w,h)。使用该函数可以方便地获取一个轮廓的位置和大小信息。
ValueError Traceback (most recent call last) <ipython-input-9-30d4162d3ab9> in <module>() ----> 1 contours, hierarchy = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 2 3 for item in contours: 4 rect = cv2.boundingRect(item) 5 x = rect[0] ValueError: too many values to unpack (expected 2)
这个错误的原因是 `cv2.findContours()` 函数的返回值在 OpenCV 3 和 OpenCV 4 中有所不同。在 OpenCV 4 中, `cv2.findContours()` 返回两个值,分别是轮廓和层级信息。而在 OpenCV 3 中, `cv2.findContours()` 只返回轮廓信息。
因此,如果你使用的是 OpenCV 3,那么你需要将代码修改为:
```python
contours, _ = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
```
如果你使用的是 OpenCV 4,则可以保留原来的代码不变。
阅读全文