# -牧野- 2021-05-29
import cv2
from flowlib import flow_to_image
import numpy as npdef warp_flow(img, flow):h, w = flow.shape[:2]flow = -flowflow[:,:,0] += np.arange(w)flow[:,:,1] += np.arange(h)[:,np.newaxis]res = cv2.remap(img, flow, None, cv2.INTER_LINEAR)return resimg0_path = 'im1.png'
img1_path = 'im3.png'img0 = cv2.imread(img0_path)
img1 = cv2.imread(img1_path)img0_gray = cv2.cvtColor(img0, cv2.COLOR_BGR2GRAY)
img1_gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)dis = cv2.DISOpticalFlow_create(2)  #PRESET_ULTRAFAST, PRESET_FAST and PRESET_MEDIUM
flow0 = dis.calc(img0_gray, img1_gray, None, )
flow1 = dis.calc(img1_gray, img0_gray, None, )img1_warp = warp_flow(img0, flow0)
img0_warp = warp_flow(img1, flow1)flow0_img = flow_to_image(flow0)
flow1_img = flow_to_image(flow1)cv2.imwrite('flow0.jpg', flow0_img)
cv2.imwrite('flow1.jpg', flow1_img)
cv2.imwrite('im3_warp.jpg', img1_warp)
cv2.imwrite('im1_warp.jpg', img0_warp)

引用的flowlib.py文件见https://github.com/liruoteng/OpticalFlowToolkit/blob/master/lib/flowlib.py

输入图像:

0:PRESET_ULTRAFAST 1:PRESET_FAST   2:PRESET_MEDIUM对应结果:

warp结果:

opencv-python DIS光流相关推荐

  1. OpenCV DIS光流OpticalFlow的实例(附完整代码

    OpenCV DIS光流OpticalFlow的实例 OpenCV DIS光流OpticalFlow的实例 OpenCV DIS光流OpticalFlow的实例 #include "open ...

  2. 机器视觉 OpenCV—python目标跟踪(光流)

    文章目录 一.运动检测 1.1 检测思路 1.2 代码 二.运动方向预测 2.1 关键点(角点)追踪 goodFeaturesToTrack() 2.2 光流法 一.运动检测 1.1 检测思路 目标跟 ...

  3. OpenCV中的光流及视频特征点追踪

    OpenCV中的光流及视频特征点追踪 1. 效果图 2. 原理 2.1 什么是光流?光流追踪的前提.原理 2.2 光流的应用 2.3 光流的2种方法 3. 源码 3.2 稀疏光流追踪 3.2 优化版稀 ...

  4. 干货 | OpenCV中KLT光流跟踪原理详解与代码演示

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 稀疏光流跟踪(KLT)详解 在视频移动 ...

  5. INDEMIND带你玩转OpenCV4.0(一):DIS光流算法解析

    文章目录 一.OpencCV 4.0 新特性介绍 首先是OpenCV完全支持了C++ 11 DNN(深度神经网络)模块是目前OpenCV更新最重要的模块 G-API 为算法的硬件优化加速提供计算图支持 ...

  6. OpenCV+python:Canny边缘检测算法

    1,边缘处理 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用. 在空域运算中来说,对图像的锐化就是计算微分.由于数字 ...

  7. OpenCV Python在计算机视觉中的应用

    OpenCV Python教程 在这篇文章中,我们将使用Python中的OpenCv来涵盖计算机视觉的各个方面.OpenCV长期以来一直是软件开发的重要组成部分. 什么是计算机视觉? 我们考虑一个场景 ...

  8. OpenCV Python教程(2、图像元素的访问、通道分离与合并)

    OpenCV Python教程之图像元素的访问.通道分离与合并 转载请详细注明原作者及出处,谢谢! 访问像素 像素的访问和访问numpy中ndarray的方法完全一样,灰度图为: [python] v ...

  9. python中import cv2遇到的错误及安装方法_独家利用OpenCV,Python和Ubidots来构建行人计数器程序(附代码amp;解析)...

    作者:Jose Garcia 翻译:吴振东 校对:张一豪 本文约4000字,建议阅读14分钟. 本文将利用OpenCV,Python和Ubidots来编写一个行人计数器程序,并对代码进行了较为详细的讲 ...

  10. 如何把OpenCV Python获取的图像传递到C层处理

    原文:https://blog.csdn.net/yushulx/article/details/52788051 用OpenCV Python来开发,如果想要用到一些C/C++的图像处理库,就需要创 ...

最新文章

  1. 二进制包 mysql_二进制包;mysql
  2. [HDU 3625] Examining the Rooms(第一类斯特林数)
  3. 疯了,要建飞铁!比飞机快3倍,4000km/h,北京到深圳半小时
  4. 计算机应用基础的题库,统考计算机应用基础题库
  5. action中的动态方法调用
  6. 统计某个字符串出现的次数
  7. Atitit.嵌入式web 服务器 java android最佳实践
  8. 【Gym-101908 L】Subway Lines【树上两条路径交】
  9. 网站标签页如何添加左边的小图标
  10. 怀旧服服务器物品栏在哪里,魔兽世界怀旧服:祈福服务器的真实情况,装备不贵,玩家确实不多...
  11. Java2实用教程第五版+第七章习题答案
  12. html图片顺时针倾斜50度,【资源】纯CSS右上角倾斜四十五度封页角效果
  13. Deepin安装向日葵报错
  14. HTML5 validity api,html5 form-Validity验证函数
  15. 软硬件学习记录5—— Verilog语言中的数据类型
  16. 手工修改BIOS,让板载显卡与独立显卡共存
  17. PLSQL官网, 及个版本下载地址和下载方法
  18. SM30表维护自动更新值
  19. 工作组模式下Windows共享分析
  20. android Jetpack StateFlow使用

热门文章

  1. Oh My ZSH让你的终端美如画
  2. javaScript快速入门(仅需一天)
  3. GPS实验二:GPS接收机的使用
  4. 英语知识点整理day04
  5. CocosCreator2.3.3 Effect中换算图集中UV
  6. Android_adb shell dumpsys介绍
  7. 【Simulink】Three-Phase V-I Measurement 使用方法
  8. 学GIS开发怎么入门,GIS专业的学生应该掌握什么知识 ?
  9. 【数字IC验证快速入门】11、Verilog TestBench(VTB)入门
  10. VS2010 调试C++项目 fatal error LNK1123 错误解决办法