OpenCV实现视频的追踪(meanshift、Camshift)

目录

1,meanshift

[1.1 算法流程](#1.1 算法流程)

[1.2 算法实现](#1.2 算法实现)

[1.3 代码实现](#1.3 代码实现)

[1.4 结果展示](#1.4 结果展示)


1,meanshift

1.1 算法流程

1.2 算法实现

1.3 代码实现

复制代码
import numpy as np
import cv2 as cv

# 读取视频
cap = cv.VideoCapture('video.mp4')

# 检查视频是否成功打开
if not cap.isOpened():
    print("Error: Cannot open video file.")
    exit()

# 获取第一帧图像,并指定目标位置
ret, frame = cap.read()

# 目标位置
x, y, w, h = 960,500, 100, 100
track_window = (x, y, w, h)

# 指定目标的感兴趣区域
roi = frame[y:y+h, x:x+w]

# 转换感兴趣区域的颜色空间(HSV)
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 = cap.read()
    if not ret:
        break

    # 转换当前帧的颜色空间(HSV)
    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', img2)

    if cv.waitKey(60) & 0xFF == ord('q'):
        break

cap.release()
cv.destroyAllWindows()

1.4 结果展示

追踪结果展示

相关推荐
千宇宙航2 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第十四课——图像二值化的FPGA实现
图像处理·计算机视觉·fpga开发
橡晟2 小时前
深度学习入门:让神经网络变得“深不可测“⚡(二)
人工智能·python·深度学习·机器学习·计算机视觉
墨尘游子2 小时前
神经网络的层与块
人工智能·python·深度学习·机器学习
Leah01052 小时前
什么是神经网络,常用的神经网络,如何训练一个神经网络
人工智能·深度学习·神经网络·ai
倔强青铜32 小时前
苦练Python第18天:Python异常处理锦囊
开发语言·python
PyAIExplorer2 小时前
图像亮度调整的简单实现
人工智能·计算机视觉
企鹅与蟒蛇2 小时前
Ubuntu-25.04 Wayland桌面环境安装Anaconda3之后无法启动anaconda-navigator问题解决
linux·运维·python·ubuntu·anaconda
autobaba3 小时前
编写bat文件自动打开chrome浏览器,并通过selenium抓取浏览器操作chrome
chrome·python·selenium·rpa
Striker_Eureka3 小时前
DiffDet4SAR——首次将扩散模型用于SAR图像目标检测,来自2024 GRSL(ESI高被引1%论文)
人工智能·目标检测
Rvelamen4 小时前
LLM-SECURITY-PROMPTS大模型提示词攻击测评基准
人工智能·python·安全