cv2.inRange
时间: 2024-05-15 10:18:46 浏览: 71
cv2.inRange() 是 OpenCV 中的一个函数,用于创建一个二值掩膜(mask),提取出输入图像中像素值在指定范围内的部分。这个函数的语法为:
`cv2.inRange(src, lowerb, upperb[, dst])`
其中,src 是输入图像,lowerb 和 upperb 是指定的范围,dst 是输出的二值掩膜。例如,如果想提取出输入图像中颜色在蓝色范围内的部分,可以使用以下代码:
```
import cv2
import numpy as np
img = cv2.imread("test.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_blue = np.array([110, 50, 50])
upper_blue = np.array([130, 255, 255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)
res = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow("img", img)
cv2.imshow("mask", mask)
cv2.imshow("res", res)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码先将输入图像转换为 HSV 颜色空间,然后定义了颜色范围 lower_blue 和 upper_blue,在 HSV 颜色空间中,蓝色的范围是 [110, 50, 50] 到 [130, 255, 255]。最后使用 cv2.inRange() 函数提取出颜色在范围内的部分,并将其与原图进行按位与操作,得到提取出来的部分。
阅读全文