OpenCV 获取指定颜色 inRange函数

最近研究提取图片中指定颜色的物体,用到OpenCV

在网上找到的代码

hue_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

low_range =   np.array([139, 150, 160], np.uint8)  
high_range =  np.array([153, 200, 200], np.uint8)
#low_range =  np.array([140, 0, 0])
#high_range = np.array([150, 255, 255])
th = cv2.inRange(hue_image, low_range, high_range)
# hue_image图像是HSV颜色空间

可以看到先用cvtColor将图像转为HSV颜色空间

之后用inRange函数找到色彩在low和high数组内区域

inRange Function:

Parameters
src first input array.
lowerb inclusive lower boundary array or a scalar.
upperb inclusive upper boundary array or a scalar.

 

比较容易不理解的就是数组的3个参数,这个值与图片的色彩空间有关(cvtColor函数BGR2HSV)BGR2HSV把图片转为HSV,

图片是HSV模式 ,三个参数分别为 [H,S,V],其他的类型同理

HSV的优势是,颜色变化编码更为线性,相对于RGB更容易被抓取

# 色相(H)是色彩的基本属性,就是平常所说的颜色名称,如红色、黄色等
# 饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。
# 明度(V),亮度(L)

posted on 2022-11-09 11:18  马什么梅  阅读(558)  评论(0编辑  收藏  举报

导航