关键点追踪--光流估计

简介: 利用光流估计进行关键点追踪

光流估计,会捕获第一帧的关键点然后对关键点进行追踪

详细代码如下:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
feature_params = dict(maxCorners=100, qualityLevel=0.5, minDistance=7) #角点加测的参数

lk_params = dict(winSize=(30, 30), maxLevel=3)#Lucas kanade参数
#宽度和最大金字塔数
color = np.random.randint(0, 255, (100, 3))#随机颜色条

ret, old_frame = cap.read()
old_gray = cv2.cvtColor(old_frame, cv2.COLOR_BGR2GRAY)
p0 = cv2.goodFeaturesToTrack(old_gray, mask=None, **feature_params)  # 第一帧角点
mask = np.zeros_like(old_frame)

while True:
    re, frame = cap.read()
    frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params)
    good_new = p1[st == 1] #找到的点
    good_old = p0[st == 1]
    for i, (new, old) in enumerate(zip(good_new, good_old)):
        # enumerate同时列出数据和数据下标
        #zip()将对象中对应元素打包成远组,返回元组列表
        a, b = new.ravel() #将多维数组转换为一堆数组
        c, d = old.ravel()
        line = cv2.line(mask, (a, b), (c, d), (0, 0, 255), 2) #将矩阵和数组转化为列表
        frame = cv2.circle(frame, (a, b), 5, (255, 0, 0), -1)#将矩阵和数组转化为列表
    img = cv2.add(frame, mask)#两个图像相加
    cv2.imshow('frame', img)
    cv2.imshow("line", frame)
    cv2.imshow('mask', line)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cv2.destroyAllWindows()
cap.release()
目录
相关文章
|
7月前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
7月前
|
存储 计算机视觉 流计算
【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
313 0
|
机器学习/深度学习 传感器 算法
【图像分割】图像检测(分割、特征提取)、各种特征(面积等)的测量和过滤(Matlab代码实现)
【图像分割】图像检测(分割、特征提取)、各种特征(面积等)的测量和过滤(Matlab代码实现)
|
机器学习/深度学习 传感器 算法
垂直腔表面发射激光器极化噪声的建模与分析论文复现
垂直腔表面发射激光器极化噪声的建模与分析论文复现
|
算法 数据挖掘 计算机视觉
使用稀疏性(微球)进行色谱图基线估计和去噪(Matlab代码实现)
使用稀疏性(微球)进行色谱图基线估计和去噪(Matlab代码实现)
156 0
|
机器学习/深度学习 传感器 分布式计算
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
107 0
|
机器学习/深度学习 固态存储
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(二)
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(二)
89 0
|
机器学习/深度学习 编解码 监控
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(一)
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(一)
133 0
|
机器学习/深度学习 监控 算法
YOLOv7姿态估计pose estimation(姿态估计+目标检测+跟踪)
YOLOv7姿态估计pose estimation(姿态估计+目标检测+跟踪)
|
人工智能 自动驾驶 计算机视觉
单目3D检测入门!从图像角度分析3D目标检测场景:MonoDLE
这篇文章的价值就在于简单,对单目检测这个任务进行了拆解分析,对于刚接触这一领域的工作者十分友好,可以对单目检测建立一个初步的认识。并且,他的加强版模型MonoCon去年也曾拿过一段时间的KITTY榜首,证明了这套方法的有效性。
单目3D检测入门!从图像角度分析3D目标检测场景:MonoDLE