contour 怎么加上范围
时间: 2023-12-02 22:04:24 浏览: 45
labview木板曲线缺陷Contour
要在contour中添加范围,您可以使用cv2.inRange()函数或np.where()函数。这些函数将创建一个掩码,该掩码仅包含指定范围内的像素值。然后,您可以将此掩码与您的contour一起使用。以下是一个示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 添加范围
lower = np.array([0, 0, 0])
upper = np.array([50, 50, 50])
mask = cv2.inRange(img, lower, upper)
# 或者使用np.where()
mask = np.zeros_like(img)
mask[np.where((img > lower).all(axis=2) & (img < upper).all(axis=2))] = 255
# 获取contour
contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 绘制带范围的contour
img_contour = cv2.drawContours(img, contours, -1, (0, 255, 0), 2)
cv2.imshow('image', img_contour)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们使用cv2.inRange()函数或np.where()函数创建了一个掩码,该掩码仅包含像素值在指定范围内的像素。然后,我们使用cv2.findContours()函数获取了contour,并将其绘制在原始图像上。
阅读全文