基于OPENCV的光流检测(坐标点输出二维与伪三维)

亲测window,linux环境下都可使用

本人主做嵌入式自学的视觉,学习分享,能力有限,望大佬们指点

参考文献:1.光流法运动目标检测 - 小宅博客 (bilibili996.com)

                2. 请登录后下载 - 小宅博客

背景:想做的是能够追踪一个目标点,在三维空间下的坐标

想上深度学习,但是感觉有点费算力,其次没系统学习人为只能作为识别,不知道深度学习对点的追踪效果咋样,希望大拿可以说下。所以最后用了OPENCV给了个简单的展现

一.环境搭建

主要环境是python3.7

以及下几个主要的Python库

  1. OpenCV (cv2): 用于图像处理和计算光流。
  2. Matplotlib: 用于绘制3D图表可视化光流跟踪结果。
  3. NumPy: 用于处理数组数据

可以通过以下命令来检测环境是否已经安装

pip install opencv-python matplotlib numpy

检查是否有相应的Python库

sudo apt-get install python3-opencv python3-matplotlib python3-numpy

好了那就没有了,废话不多说上代码

二.二维坐标下光流显示

效果图如上

代码主要实现方式是这样的

  1. 初始化摄像头并设置回调函数,以便通过鼠标点击指定跟踪的关键点。
  2. 使用ShiTomasi角点检测初始化关键点,或者通过鼠标回调获取用户指定的关键点。
  3. 在每一帧中使用Lucas-Kanade方法计算光流,跟踪关键点的运动。
  4. 使用Matplotlib在3D图表中显示关键点的轨迹,其中X、Y、Z分别表示关键点的横纵坐标和帧数。
  5. 在用户按下 'q' 键时退出跟踪。

各个函数的解释

1.tracking 函数:

cap.read() 从摄像头中读取一帧图像,返回布尔值 ret 表示读取是否成功,以及图像帧 frame。
图像帧经过灰度转换,使用 ShiTomasi 角点检测找到角
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值