cv2.boundingRect()
时间: 2023-06-20 14:10:16 浏览: 170
cv2.boundingRect()是OpenCV中的一个函数,用于计算一个轮廓的边界矩形,即将轮廓包围在一个矩形框中。该函数的语法如下:
```
x,y,w,h = cv2.boundingRect(contour)
```
其中,contour是输入的轮廓,x和y是矩形框左上角的坐标,w和h是矩形框的宽度和高度。该函数可以用于图像处理中的目标检测、跟踪、物体定位等应用。
相关问题
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,则可以保留原来的代码不变。
阅读全文