基于彩色直方图反向投影的CamShift追踪

本文介绍了基于彩色直方图反向投影的CamShift追踪技术,详细阐述了从HSV空间的mask处理到生成直方图的过程,并通过参考链接提供了相关教程。在HSV空间中,对特定色调范围的图像进行处理,然后利用鼠标选择目标区域,保存ROI以进行追踪。通过CamShift函数计算旋转矩形,实现目标的连续追踪。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

试了一下基于彩色直方图反向投影的Camshitft追踪

参考文章:

http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/histograms/back_projection/back_projection.html

http://www.cnblogs.com/zsb517/archive/2012/06/20/2556508.html


先说一下直方图的生成过程:

1. 先将frame转换到hsv空间

2. 对frame进行mask处理

1> mask的选择有三个参数:vmin, vmax smin(亮度最小值,亮度最大值,饱和度最小值),其实不太理解为什么要进行一个mask处理,是因为要追踪的目标总是色彩明艳的吗?

3. 将转换到hsv空间的图像的h通道抽离出来,生成只有hue(色调)通道的hue图

4. 用鼠标框选出要追踪的目标,保存hue图像的对应ROI区域和mask的对应ROI图像

5. 生成hueROI(使用maskROI做掩膜)的彩色直方图

6. 使用CamShift函数来计算生成的RotatedRect进行追踪

生成彩色直方图颜色的ColBuf,HSV空间的hue通道范围为0~360,在人为生成的时候规定为0~180。

float hranges[] = { 0, 180 };
const float* phranges = hranges;
//直方图参数:参数1:输入图像的地址 参数2:输入图像个数 参数3:统计的通道数(?) 参数4:掩膜 参数5:输出的直方图,一个Mat 参数6:直方图的维度 参数7:存放每个直方图的数组 参数8:每一维的取值范围
calcHist(&hueRoi, 1, 0, maskRoi, hist, 1, &hsize, &phranges);
normalize(hist, hist, 0, 255, CV_MINMAX);

trackWindow = selectionArea;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值