IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 2021-8-16 opencv的视频追踪 -> 正文阅读

[人工智能]2021-8-16 opencv的视频追踪

1.使用meanshift进行视频追踪:框口大小不变

API:

cv.meanShift(probImage, window, criteria)

参数:

  • probImage: ROI区域,即目标的直方图的反向投影

  • window: 初始搜索窗口,就是定义ROI的rect

  • criteria: 确定窗口搜索停止的准则,主要有迭代次数达到设置的最大值,窗口中心的漂移值大于某个设定的限值等。

2.使用Camshift进行视频追踪:可根据目标的大小和角度来对窗口的大小和角度进行修正。

API:

cv.CamShift(probImage, window, criteria)

实例探讨:

#库导入
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

#获取视频对象
video = cv.VideoCapture('test_video.mp4')

#meanShift进行视频追踪
#获取第一帧图片信息
ret,frame = video.read()
#设置目标位置(行,高,列,宽)
r,h,c,w = 500,50,140,123
track_window = (c,r,w,h)
#指定目标的感兴趣区域
roi = frame[r:r+h,c:c+w]

#转换色彩空间
hsv_roi = cv.cvtColor(roi,cv.COLOR_BGR2HSV)
#计算直方图
roi_hist = cv.calcHist([hsv_roi],[0],None,[180],[0,180])
#归一化
cv.normalize(roi_hist,roi_hist,0,255,cv.NORM_MINMAX)

#设置窗口搜索终止条件:最大迭代次数,窗口中心飘逸最小值
term_crit = (cv.TERM_CRITERIA_EPS|cv.TERM_CRITERIA_COUNT,10,1)

while(True):
    ret,frame=video.read()
    if ret == True:
        hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)
        dst = cv.calcBackProject([hsv],[0],roi_hist,[0,180],1)
        #进行meanshift追踪
        ret,track_window = cv.meanShift(dst,track_window,term_crit)
        #将追踪的位置绘制在视频上并显示
        x,y,w,h = track_window
        img2=cv.rectangle(frame,(x,y),(x+w,y+h),255,2)
        cv.imshow('frame',frame)
        
        if cv.waitKey(60)&0xFF == ord('q'):
            break
    else:
            break

video.release()
cv.destroyAllWindows()

#CamShift进行视频追踪
while(True):
    ret,frame=video.read()
    if ret == True:
        hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)
        dst = cv.calcBackProject([hsv],[0],roi_hist,[0,180],1)
        #进行camshift追踪
        ret, track_window = cv.CamShift(dst, track_window, term_crit)

        # 绘制追踪结果
        pts = cv.boxPoints(ret)
        pts = np.int0(pts)
        img2 = cv.polylines(frame,[pts],True, 255,2)
        cv.imshow('frame',frame)
        
        if cv.waitKey(60)&0xFF == ord('q'):
            break
    else:
            break
#其余操作类似

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:24:00  更:2021-08-17 15:24:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:04:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码