opencv轮廓凸包
时间: 2023-10-11 12:14:36 浏览: 136
引用和引用[2]提供了关于OpenCV中轮廓凸包的相关信息。通过使用cv2.convexHull()函数可以计算给定轮廓的凸包,并返回凸包的角点。此外,通过使用cv2.convexityDefects()函数可以找到凸包中的缺陷点。
代码示例:
```python
import cv2
# 读取图像并进行预处理
img = cv2.imread('1.jpg')
imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, imgThreshold = cv2.threshold(imgGray, 180, 255, cv2.THRESH_BINARY_INV)
# 查找轮廓
contours, _ = cv2.findContours(imgThreshold, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
# 计算凸包
hull = cv2.convexHull(contours[0])
# 绘制凸包多边形
cv2.polylines(img, [hull], True, (0, 255, 0), 2)
# 显示图像
cv2.imshow('Convex Hull', img)
cv2.waitKey()
cv2.destroyAllWindows()
```
在上述代码中,我们首先读取图像并将其转换为灰度图像。然后,我们使用阈值化将图像转换为二值图像。接下来,我们使用cv2.findContours()函数查找图像中的轮廓。然后,我们使用cv2.convexHull()函数计算轮廓的凸包。最后,我们使用cv2.polylines()函数绘制凸包多边形,并显示图像。
阅读全文