
OpenCV meanshift目标追踪
发布日期:2021-05-10 03:23:24
浏览次数:19
分类:精选文章
本文共 1672 字,大约阅读时间需要 5 分钟。
meanshift原理:一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束。
Meanshift算法:简单,迭代次数少,但无法解决目标的遮挡问题并且不能适应运动目标的的形状和大小变化。
cv.meanShift(probImage, window, criteria)
参数:
-
probImage: ROI区域,即目标的直方图的反向投影
-
window: 初始搜索窗口,就是定义ROI的rect
-
criteria: 确定窗口搜索停止的准则,主要有迭代次数达到设置的最大值,窗口中心的漂移值大于某个设定的限值等。
实现Meanshift的主要流程是:
- 读取视频文件:cv.videoCapture()
- 感兴趣区域设置:获取第一帧图像,并设置目标区域,即感兴趣区域
- 计算直方图:计算感兴趣区域的HSV直方图,并进行归一化
- 目标追踪:设置窗口搜索停止条件,直方图反向投影,进行目标追踪,并在目标位置绘制矩形框。
import cv2 as cv# 1.获取图像cap = cv.VideoCapture('./1.mp4')# 2.获取第一帧图像,并指定目标位置ret, frame = cap.read()# 2.1 目标位置(行,高,列,宽)r, h, c, w = 197, 141, 0, 208track_window = (c, r, w, h)# 2.2 指定目标的感兴趣区域roi = frame[r:r+h, c:c+w]# 3. 计算直方图# 3.1 转换色彩空间(HSV)hsv_roi = cv.cvtColor(roi, cv.COLOR_BGR2HSV)# 3.2 去除低亮度的值# mask = cv.inRange(hsv_roi, np.array((0., 60.,32.)), np.array((180.,255.,255.)))# 3.3 计算直方图roi_hist = cv.calcHist([hsv_roi], [0], None, [180], [0, 180])# 3.4 归一化cv.normalize(roi_hist, roi_hist, 0, 255, cv.NORM_MINMAX)# 4. 目标追踪# 4.1 设置窗口搜索终止条件:最大迭代次数,窗口中心漂移最小值term_crit = (cv.TERM_CRITERIA_EPS | cv.TERM_CRITERIA_COUNT, 10, 1)while(True): # 4.2 获取每一帧图像 ret, frame = cap.read() if ret == True: # 4.3 计算直方图的反向投影 hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV) dst = cv.calcBackProject([hsv], [0], roi_hist, [0, 180], 1) # 4.4 进行meanshift追踪 ret, track_window = cv.meanShift(dst, track_window, term_crit) # 4.5 将追踪的位置绘制在视频上,并进行显示 x, y, w, h = track_window img2 = cv.rectangle(frame, (x, y), (x + w, y + h), 255, 2) cv.imshow('frame', img2) if cv.waitKey(60) & 0xFF == ord('q'): break else: break# 5. 资源释放 cap.release()cv.destroyAllWindows()
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月07日 19时22分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
我用wxPython搭建GUI量化系统之Sizer布局管理与页面切换
2021-05-10
我用wxPython搭建GUI量化系统之多只股票走势对比界面
2021-05-10
我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具
2021-05-10
我用wxPython搭建GUI量化系统之财务选股工具添加日历和排序
2021-05-10
我用wxPython搭建GUI量化系统之财务选股工具与股票行情界面切换
2021-05-10
我用wxPython搭建GUI量化系统之财务选股工具剔除ST股和次新股
2021-05-10
搭建量化系统|wxPython布局管理实现多只股票走势对比界面
2021-05-10
搭建系统|升级基于财务数据的选股工具!添加上日历和排序功能会更好用
2021-05-10
星球年度汇总-基金持仓前十股票分析工具-更新1
2021-05-10
对双向链表的学习
2021-05-10
xshell连接Ubuntu学习Unix网络编程
2021-05-10
scikit-learn sklearn 使用汇总
2021-05-10
2019年达观杯文本智能信息抽取挑战赛 四到十名队伍分享
2021-05-10
一文掌握Python正则表达式
2021-05-10
2020年科大讯飞 温室温度预测前三名队伍分享
2021-05-10
selenium+python之切换窗口
2021-05-10
javac 编译命令 错误:无法从静态上下文中引用非静态 变量
2021-05-10
网页前端查询页面时间显示1605783213000
2021-05-10
Unknown database ‘modd‘
2021-05-10