opencv光流估计

news2025/1/15 20:10:05

光流估计

光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”,根据各个像素点的速度矢量特征,可以对图像进行动态分析,例如目标跟踪。

返回:

  • 亮度恒定:同一点随着时间的变化,其亮度不会发生改变。

  • 小运动:随着时间的变化不会引起位置的剧烈变化,只有小运动情况下才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数。

  • 空间一致:一个场景上邻近的点投影到图像上也是邻近点,且邻近点速度一致。因为光流法基本方程约束只有一个,而要求x,y方向的速度,有两个未知变量。所以需要连立n多个方程求解。

    Lucas-Kanade 算法

     如何求解方程组呢?看起来一个像素点根本不够,在物体移动过程中还有哪些特性呢?

    参数:

  • prevImage 前一帧图像

  • nextImage 当前帧图像

  • prevPts 待跟踪的特征点向量

  • winSize 搜索窗口的大小

  • maxLevel 最大的金字塔层数

  • nextPts 输出跟踪特征点向量

  • status 特征点是否找到,找到的状态为1,未找到的状态为0

    import numpy as np
    import cv2
    
    cap = cv2.VideoCapture('test.avi')
    
    # 角点检测所需参数
    feature_params = dict( maxCorners = 100,
                           qualityLevel = 0.3,
                           minDistance = 7)
    
    # lucas kanade参数
    lk_params = dict( winSize  = (15,15),
                      maxLevel = 2)
    
    # 随机颜色条
    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
    mask = np.zeros_like(old_frame)
    
    while(True):
        ret,frame = cap.read()
        frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
        # 需要传入前一帧和当前图像以及前一帧检测到的角点
        p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params)
    
        # st=1表示
        good_new = p1[st==1]
        good_old = p0[st==1]
    
        # 绘制轨迹
        for i,(new,old) in enumerate(zip(good_new,good_old)):
            a,b = new.ravel()
            c,d = old.ravel()
            mask = cv2.line(mask, (int(a),int(b)),(int(c),int(d)), color[i].tolist(), 2)
            frame = cv2.circle(frame, (int(a),int(b)), 5, color[i].tolist(), -1)
        img = cv2.add(frame,mask)
    
        cv2.imshow('frame',img)
        k = cv2.waitKey(150) & 0xff
        if k == 27:
            break
    
        # 更新
        old_gray = frame_gray.copy()
        p0 = good_new.reshape(-1,1,2)
    
    cv2.destroyAllWindows()
    cap.release()

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/896906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32 GPIO复习

GPIO General Purpose Input Output,即通用输入输出端口,简称GPIO。 负责采集外部器件的信息或控制外部器件工作,即输入输出。 不同型号,IO口数量可能不一样,可通过选型手册快速查询。 能快速翻转,每次翻…

基于QT4的GPX文件编辑器开发

GPX文件是记录地理点的文件,本质是一种xml文件。GPX文件目前没有很好的编辑器,因此作者决定开发一款无需安装的绿色编辑器。 在QT4开发中,XML可以用DOM来实现,但其逻辑并不是很清晰。使用模型视图反而会更加可读。因此在开发中,使用model-view模式来实现数据读写。 1 需…

高速、稳定、安全:4G工业路由器在户外环境下的组网优势

能够在无人值守的户外环境下实现组网和远程监控功能的4G工业路由器!工业级路由器具备防尘、防水、耐高温等特性,适用应用在恶劣的户外及工业场景中,如远程农田监测、驾考科目二/科目三、智能交通系统、环境监控、煤矿数据采集、水利远程管理等…

视频播放实现示例Demo

学习链接 vuespringboot文件分片上传与边放边播实现 同步加载、播放视频的实现 ---- range blob mediaSource 通过调试技术,我理清了 b 站视频播放很快的原理 MSE (Media Source Extensions) 上手指南 浅聊音视频的媒体扩展(Media Source Extension…

曲线救国 | 双非渣硕的秋招路

作者 | 带带大兄弟 面试锦囊之面经分享系列,持续更新中 欢迎后台回复"面试"加入讨论组交流噢 一篇旧文,可以参考~ 写在前面 双非渣硕,0实习,3篇水文,三个给老板当打工仔的nlp横向项目,八月份开…

uniapp 微信小程序 绘制海报,长按图片分享,保存海报

uView UI 2.0 dcloud 插件市场地址 弹窗海报源码 <template><!-- 推荐商品弹窗 --><u-popup :show"haibaoShow" mode"center" round26rpx z-index10076 bgColortransparent safeAreaInsetTop close"goodsclose"><image …

第四十九周周报

学习目标&#xff1a; VITGAN实验 学习时间&#xff1a; 2023.8.12-20238.18 学习产出&#xff1a; 一、实验 1、内容&#xff1a;在原模型的基础上加上相对位置编码&#xff0c;结果&#xff1a;比原模型差 2、内容&#xff1a;在原模型的基础上加上可学习位置编码相对位…

常用系统命令

重定向 cat aa.txt > bbb.txt 将输出定向到bbb.txt cat aaa.txt >> bbb.txt 输出并追加查看进程 ps ps -ef 显示所有进程 例⼦&#xff1a;ps -ef | grep mysql |&#xff1a;管道符 kill pid 结束进程&#xff0c; 如 kill 3732&#xff1b;根据进程名结束进程可以先…

终端美化+自动补全和语法高亮 + zsh

终端美化自动补全和语法高亮 zsh 一、前言 1、最终效果 2、所用工具 zsh shell # bash改zsh&#xff0c;选用原因后文提及oh my zsh # 插件管理powerlevel10k # 主题auto-suggestion # 自动补全syntax highlighting # 语法高亮3、bash vs zsh vs fish 经典话题&#xff0c;…

Shell编程之免交户

expect 一、多行重定向1.1 格式1.2 注意事项1.3 使用实例 二、expect免交户2.1 expect概述2.1.1 定义2.1.2 安装2.1.3 命令格式 2.2 相关命令2.2.1 spawn2.2.2 expect.3 send2.2.3 set2.2.4 send_user2.2.5 exp_continue2.2.6 脚本解释器2.2.7 结束符2.2.8 exit 2.3 运用实例.1…

【Django】Task3 外键的使用、Queryset和Instance

【Django】Task3 外键的使用、Queryset和Instance Task3主要理解数据库外键的使用场景&#xff0c;了解Queryset的功能&#xff0c;通过编写代码体验Queryset中对数据库实例的curd操作&#xff0c;同时了解到Instance的定义。 1.外键的使用 1.1什么是外键 数据表外键是数据…

SHELL 基础

echo 打印命令 &#xff1a; 显示字符串 [rootserver ~]# echo this is SHELL language this is SHELL language [rootserver ~]# echo this is SHELL language this is SHELL language [rootserver ~]# echo "this is SHELL language" this is SHELL language…

el-table 实现动态表头 静态内容 根据数据显示动态输入框

直接放代码了 <el-table:data"form.tableDataA"borderstripestyle"width: 100%; margin-top: 20px"><el-table-columnv-for"(category, categoryIndex) in form.tableDataA":key"categoryIndex":label"category.name&qu…

AWS security 培训笔记

云计算的好处 Amazon S3 (Storage) Amazon EC2 (Compute) 上图aws 的几个支柱&#xff1a;安全是其中一个啦 其中安全有几个方面 IAMdetection基础架构保护数据保护应急响应 关于云供应商的责任 data center 原来长这样 &#xff0c;据说非常之隐蔽的 如果有天退役了&#xf…

回归预测 | MATLAB实现TSO-BP金枪鱼群优化算法优化BP神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现TSO-BP金枪鱼群优化算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现TSO-BP金枪鱼群优化算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果…

第1篇:Arduino与ESP32开发板的安装方法

一、下载安装包 arduino2.1.0-esp32_2.0.9-esp8266_3.1.1离线安装包 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https://pan…

计算机网络——OSI与TCP/IP各层的结构与功能,都有哪些协议?

文章目录 一 OSI与TCP/IP各层的结构与功能,都有哪些协议?1.1 应用层1.2 运输层1.3 网络层1.4 数据链路层1.5 物理层1.6 总结一下 二 ⭐TCP 三次握手和四次挥手(面试常客)2.1 TCP 三次握手漫画图解2.2 为什么要三次握手⭐2.3 第2次握手传回了ACK&#xff0c;为什么还要传回SYN&…

小程序的数据绑定和事件绑定

小程序的数据绑定 1.需要渲染的数据放在index.js中的data里 Page({data: {info:HELLO WORLD,imgSrc:/images/1.jpg,randomNum:Math.random()*10,randomNum1:Math.random().toFixed(2)}, }) 2.在WXML中通过{{}}获取数据 <view>{{info}}</view><image src"{{…

C#反编译工具ILSPY

ILSPY ILSpy 是一个开源的.Net程序集浏览器和反编译工具。 Visual Studio 2022附带了默认情况下启用的F12反编译支持&#xff08;使用我们的引擎v7.1&#xff09;。 在Visual Studio 2019中&#xff0c;您必须手动启用F12支持。转到“工具”/“选项”/“文本编辑器”/C#/Adva…

最新ai系统ChatGPT程序源码+详细搭建教程+mj以图生图+Dall-E2绘画+支持GPT4+AI绘画+H5端+Prompt知识库

目录 一、前言 二、系统演示 三、功能模块 3.1 GPT模型提问 3.2 应用工作台 3.3 Midjourney专业绘画 3.4 mind思维导图 四、源码系统 4.1 前台演示站点 4.2 SparkAi源码下载 4.3 SparkAi系统文档 五、详细搭建教程 5.1 基础env环境配置 5.2 env.env文件配置 六、环境…