基于颜色阈值的图像跟踪

本次试验可以分成两个步骤完成。

  1. 利用颜色阈值取出跟踪目标。
  2. 使用均移(Meanshift and Camshift)算法进行目标跟踪。

首先,什么是均移(Meanshift and Camshift)算法?
均移首先是建立一个窗口(window),然后不断地将目标在窗口内移动搜索,并计算相关位置的最大值(也可以说是窗口内概率密度)。如图,实正方形是窗口的中心,实圆形是目标的质心。目标移动,其质心也会移动,我们的目的就是计算出目标的质心然后将窗口中心移动到质心位置这样就完成了对目标的跟踪。opencv的给的例子meanshif窗口大小固定,camshift窗口实自适应的。
详细请查看python-opencv手册

在这里插入图片描述
其次,什么是颜色阈值分割?
目标的颜色是目标的一个非常明显的特征,也是比较容易察觉,彩色图像的三基色是红(RED),绿(GREEN),蓝(BLUE),在此基础上建立的模型是RGB模型,然而我们常常将RGB模型 转换成HSV模型,H(明色调),S(饱和度),V(明度)。色度决定图像色彩,饱和度是颜色的深浅,明度是图像的明亮程度。图像阈值分割就是利用HSV这三个特性,设置一个范围将我们所需要(区别于背景)的目标颜色提取出来。基于颜色阈值分割的优点在于易于理解,很直观。缺点在于阈值的选取比较麻烦,且容易受到背景颜色的干扰。

在这里插入图片描述
python+opencv的方式给图像处理带来的极大的简易性,python是脚本语言所以在图像处理操作时可将代码写成脚本方便理解。
接下来开始进行试验。

import numpy as np#导入numpy库
import cv2#导入opencv库
cap = cv2.VideoCapture(0)#开启摄像头
ret,frame = cap.read()#读取第一帧视频
# take first frame of the video
lower_blue = np.array([20,0,0]) #设置颜色阈值下限
upper_blue = np.array([50,200,200])#设置颜色阈值上限

在这段代码中读取摄像头捕捉的第一帧作为预处理图像。并设置我们所需要捕捉目标颜色的范围,这里我捕捉的是黄色,范围大概是(20-50)。根据HSV模型,彩色图像的色调(H)在8bit下是(0-180)三基色的值大概是红(0),黄(30),绿(60),青(90),蓝(120)。饱和度(H)的范围是(0-255),明度(V)的范围是(0-255)。所以我给定的黄色杯盖的HSV范围如下H(20-50),S(0-200),V(0-200)。具体的opencv颜色阈值选取详细内容参见

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值