OpenCV笔记11:利用HSV颜色空间进行目标检测和目标跟踪

HSV(hue saturation value)
色调(hue):对应于颜色成分(基础色素),因此,只需选择一个色调范围,就可以选择任何颜色。(0—360)
饱和度(saturation):颜色的数量(颜料的深度)(主导色调)(0—100%)
值(value):颜色的亮度。(0—100%)

H - 色调(主导波长)。
S - 饱和度(颜色的纯度/色调)。
V - 值(强度)。

对于HSV,Hue范围是[0,179],饱和范围是[0,255],值范围是[0,255]
在这里插入图片描述
1、学习目标
使用HSV色彩空间进行物体检测和物体跟踪
(1)使用色调饱和度值(HSV)颜色模型实现基于颜色和形状的对象检测和跟踪。
(2)使用cv :: inRange(OpenCV)为色彩检测选择正确的上下HSV边界
(3)使用轨迹栏。
2、函数方法
cv2.cvtColor()
cv2.inRange()
3、程序
(1)探测物体
在这里插入图片描述
原图
在这里插入图片描述
处理结果
在这里插入图片描述
在这里插入图片描述
(2)使用轨道棒探测物体
在这里插入图片描述在这里插入图片描述
原图
在这里插入图片描述
结果
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
(3)使用轨道棒探测视频
在这里插入图片描述
在这里插入图片描述
原视频
在这里插入图片描述
处理结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
函数讲解:
(1)将图像从一个颜色空间转换为另一个颜色空间。

cv2.cvtColor(src, code[, dst[, dstCn]]) → dst
参数
src  - 输入图像:8位无符号,16位无符号(CV_16UC...)或单精度浮点。
dst  - 输出与大小和深度相同的图像src。
code - 颜色空间转换代码(参见下面的描述)。
dstCn- 目标图像中的通道数; 如果参数为0,则自动从src 和code导出通道数 

程序中的例子

cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

在转换为RGB颜色空间的情况下,应明确指定通道的顺序(RGB或BGR)

(2)创建一个数组

numpy.array(object,dtype = None,copy = True,order ='K',subok = False,ndmin = 0 )

参数:
object : array_like
数组,公开数组接口的任何对象,__array__方法返回数组的对象,或任何(嵌套)序列。

dtype : 数据类型,可选
数组所需的数据类型。如果没有给出,那么类型将被确定为保持序列中的对象所需的最小类型。此参数只能用于“upcast”数组。对于向下转换,请使用.astype(t)方法。

copy : bool,可选
如果为true(默认值),则复制对象。否则,只有当__array__返回副本,obj是嵌套序列,或者需要副本来满足任何其他要求(dtype,顺序等)时,才会进行复制。

order:{'K','A','C','F'},可选
指定阵列的内存布局。如果object不是数组,则新创建的数组将按C顺序排列(行主要),除非指定了'F',在这种情况下,它将采用Fortran顺序(专业列)。如果object是一个数组,则以下成立。
		order	   no copy	       copy=True
		‘K’   	  unchanged 	F & C order preserved, otherwise most similar order
		‘A’	      unchanged    	F order if input is F and not C, otherwise C order
		‘C’	      C order	    C order
		‘F’	      F order	    F order


subok : bool,可选
如果为True,则子类将被传递,否则返回的数组将被强制为基类数组(默认)。

ndmin : int,可选
指定结果数组应具有的最小维数。为满足此要求,将根据需要预先设置形状。

returns:out  :ndarray
满足指定要求的数组对象。

(3)

inRange(src,lowerb, upperb[, dst]) -> dst
参数:
src:原数组,可以为单通道,多通道
lowerb: 下界
upperb: 上界

(a)单通道,
假设lower=[0],upper=[128]
对每个数在0-128之间为255,否则为0;

(b)多通道,
假设lower=[0,0,0],upper=[128,128,128,128]
对每一行,对任意一个数,如果在范围内,则255,否则0,最后的几个数相与,因此如果都是255,为255,否则为0

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值