opencv的HSV格式中,H(色彩)的取值范围是[0, 179],S(饱和度)的取值范围是[0,255],V(亮度)的取值范围是[0, 255],不同软件使用的值可能会不一样。
cv2.cvtColor()函数cv2.inRange()函数的功能很简单,
cv2.cvtColor()用来实现类型转换,比如BGR==>HSV或者BGR==>GRAY等等,下面的物体跟踪就是基于HSV值来做的。
cv2.inRange()在这里主要是用来根据设定阈值范围生成掩模,根据掩模再与原图像进行按位与运算。为了查找方便,附上各个颜色与其对应的HSV值:
现在准备同时提取图片中蓝色、绿色、黄色物体,同理视频也可以操作,本文主要针对图片,操作对象如下图:
以下同时提取蓝色、绿色和黄色模块,代码如下:
import cv2
import numpy as np
#将读取图片转换HSV格式
img = cv2.imread('444.jpg')
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
#蓝色阈值设定
lower_blue = np.array([100, 43, 46])
upper_blue = np.array([124, 255, 255])
#