mask0 = cv.inRange(hsv, (156, 43, 46), (180, 255, 255)) 如何选取红色mask
时间: 2023-10-07 11:05:22 浏览: 200
用Pythonopencv提取图像中的红色区域
4星 · 用户满意度95%
在 OpenCV 中,使用 `cv2.inRange()` 函数可以选择指定颜色范围内的像素。针对红色,可以使用以下代码:
```
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转换为 HSV 格式
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 设置红色的范围
lower_red = np.array([156, 43, 46])
upper_red = np.array([180, 255, 255])
# 根据范围选择红色部分的像素
mask_red = cv2.inRange(hsv, lower_red, upper_red)
# 将红色部分保留,其余部分置为黑色
res = cv2.bitwise_and(img, img, mask=mask_red)
# 显示结果
cv2.imshow('original', img)
cv2.imshow('mask_red', mask_red)
cv2.imshow('result', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`lower_red` 和 `upper_red` 分别为红色的最小和最大 HSV 值,在这个范围内的像素会被选择。通过 `cv2.bitwise_and()` 函数将选择的红色部分保留,其余部分置为黑色。
阅读全文