opencv 红色阀值
时间: 2024-05-06 10:14:21 浏览: 6
在 OpenCV 中,可以通过阈值函数来将图像二值化。对于红色阈值,可以通过以下步骤实现:
1. 将图像从 BGR 转换为 HSV 颜色空间。可以使用 cvtColor() 函数来完成。
2. 定义红色的 HSV 范围,例如,红色的 HSV 值在 H 轴上的范围是 [0, 10] 和 [170, 180]。
3. 使用 inRange() 函数,根据定义的红色 HSV 范围来创建一个掩膜。掩膜中红色部分对应的像素值为 255,其余部分为 0。
4. 将掩膜应用到原始图像上,即可得到红色部分的二值化图像。
下面是一个示例代码片段:
```python
import cv2
# 读取图片
img = cv2.imread('test.jpg')
# 将图像从 BGR 转换为 HSV
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 定义红色的 HSV 范围
lower_red = np.array([0, 100, 100])
upper_red = np.array([10, 255, 255])
lower_red2 = np.array([170, 100, 100])
upper_red2 = np.array([180, 255, 255])
# 创建掩膜
mask1 = cv2.inRange(hsv_img, lower_red, upper_red)
mask2 = cv2.inRange(hsv_img, lower_red2, upper_red2)
mask = mask1 + mask2
# 应用掩膜
result = cv2.bitwise_and(img, img, mask=mask)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Red Threshold', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```