HSV色彩空间表
黑 | 灰 | 白 | 红 | 橙 | 黄 | 绿 | 青 | 蓝 | 紫 | |
---|---|---|---|---|---|---|---|---|---|---|
hmin | 0 | 0 | 0 | 0 / 156 | 11 | 26 | 35 | 78 | 100 | 125 |
hmax | 180 | 180 | 180 | 10 / 180 | 25 | 34 | 77 | 99 | 124 | 155 |
smin | 0 | 0 | 0 | 43 | 43 | 43 | 43 | 43 | 43 | 43 |
smax | 255 | 43 | 30 | 255 | 255 | 255 | 255 | 255 | 255 | 255 |
vmin | 0 | 46 | 221 | 46 | 46 | 46 | 46 | 46 | 46 | 46 |
vmax | 46 | 220 | 255 | 255 | 255 | 255 | 255 | 255 | 255 | 255 |
# rgb颜色空间转换到hsv颜色空间
import cv2
import numpy as np
IMGPath = './test.jpg'
rgb_image = cv2.imread(IMGPath)
hsv = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2HSV)
# 橙色
low_hsv = np.array([11,43,46])
high_hsv = np.array([25,255,255])
# 利用cv2.inRange函数设阈值,提取特征区域
mask = cv2.inRange(hsv,lowerb=low_hsv,upperb=high_hsv)
cv2.imshow('src', rgb_image)
cv2.imshow('mask', mask)
cv2.waitKey(0)
cv2.inRange():
-
第一个参数:hsv指的是原图
-
第二个参数:low_hsv指的是图像中低于这个low_hsv的值,图像值变为0
-
第三个参数:high_hsv指的是图像中高于这个high_hsv的值,图像值变为0
-
而在low_hsv~high_hsv之间的值变成255