opencv inRange保留红色
时间: 2023-07-07 11:39:28 浏览: 149
要使用OpenCV中的inRange函数来保留红色,可以使用以下代码:
```
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 将BGR颜色空间转换为HSV颜色空间
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 定义红色范围
lower_red = np.array([0, 50, 50])
upper_red = np.array([10, 255, 255])
lower_red2 = np.array([170, 50, 50])
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 = cv2.bitwise_or(mask1, mask2)
# 应用掩模
red_only = cv2.bitwise_and(img, img, mask=mask)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Red Only Image', red_only)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先将BGR颜色空间转换为HSV颜色空间,然后定义红色的范围。接着,创建一个蒙版,这个蒙版只有在红色范围内的像素值为1,其余像素值为0。最后,将蒙版应用于原始图像,只保留红色部分。
阅读全文