python光流法学习 II

基于python-opencv的Gunnar Farneback稠密光流法学习

参考链接:https://blog.csdn.net/gjy095/article/details/9206621

                   https://blog.csdn.net/u013010889/article/details/71189271

如有侵权,联系删除。

在做煤矿的项目中,想求传送带的运动信息。尝试过特征点的稀疏光流法,但是由于井下条件差,临近像素点差异小,特征点在运动过程中会发生突变,所以尝试稠密光流,但是由于计算图像上所有像素点的光流,速度略慢,测试时每帧大约0.2S左右。

def calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags)
'''
使用G-F算法计算稠密光流
'''
参数说明: prevImg 输入的8bit单通道前一帧图像;

          nextImg 输入的8bit单通道当前帧图像;
          
          flow 计算光流图,和图像有相同size

          pyr_scale 金字塔参数:0.5为经典参数,每一层是下一层尺度的一半;

          levels 金字塔的层数,1层表示单指计算图像

          winsize 窗口大小

          iterations 迭代次数

          poly_n 像素邻域的大小,大的话表示图像整体比较平滑

          poly_sigma 高斯标准差

          flags 可以为下列的组合 OPTFLOW_USE_INITIAL_FLOW OPTFLOW_FARNEBACK_GAUSSIAN

返回值为每个像素点的位移,大小和输入帧图像相同的双通道图像,即(w,h,2),一个通道表示在x方向的位移,一个通道表示y方向的位移

测试demo如下:

第一张图是光流场,第二张是对光流场的可视化。其中,不同的颜色代表方向,深浅代表运动速度。将一个像素点上的x,y的变化值d_{x}d_{y}转化为极坐标,之后用HSV图像表示。

可以看到,右图中的大多像素点是紫色,即向上方运动。

之后会看FlowNet的两篇论文,希望可以一起交流。

 

 

 

 

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值