通过HSV获取图片红色区域的代码,其中H值在0-10和160-180之间 S值设为50-255之间 V值50-255之间
时间: 2024-01-13 11:05:57 浏览: 126
好的,以下是通过HSV获取图片红色区域的Python代码,其中H值在0-10和160-180之间,S值设为50-255之间,V值50-255之间:
```python
import cv2
import numpy as np
# 读取图片
img = cv2.imread('image.jpg')
# 将RGB颜色空间转换为HSV颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 设定红色区域的阈值
lower_red = np.array([0, 50, 50])
upper_red = np.array([10, 255, 255])
mask1 = cv2.inRange(hsv, lower_red, upper_red)
lower_red = np.array([160, 50, 50])
upper_red = np.array([180, 255, 255])
mask2 = cv2.inRange(hsv, lower_red, upper_red)
# 将两个mask相加
mask = mask1 + mask2
# 提取红色区域
res = cv2.bitwise_and(img, img, mask=mask)
# 显示原图和提取出的红色区域
cv2.imshow('Original', img)
cv2.imshow('Red Region', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在代码中,首先使用cv2.imread函数读取图片,然后将RGB颜色空间转换为HSV颜色空间,接着设定红色区域的阈值,使用cv2.inRange函数获得mask1和mask2两个mask,最后将两个mask相加得到最终的mask。利用cv2.bitwise_and函数提取红色区域,最后利用cv2.imshow函数显示原图和提取出的红色区域。
阅读全文