利用光流算法检测两幅图片之间的移动关系
【摘要】
简 介: 本文给出了利用 CV2 的光流处理算法,并给出了一些典型图片处理结果。 关键词: 光流算法
...
简 介: 本文给出了利用 CV2 的光流处理算法,并给出了一些典型图片处理结果。
关键词
: 光流算法
§01 CV2光流算法
一、计算算法
下面给出了计算算法的 Python 代码。
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2022-07-13
#
# Note:
#============================================================
from headm import *
import cv2
imageid = [13, 14]
file1 = tspgetdopfile(imageid[0])
file2 = tspgetdopfile(imageid[1])
printf(file1, file2)
prev = cv2.imread(file1)
next = cv2.imread(file2)
prev_image_gray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY)
next_image_gray = cv2.cvtColor(next, cv2.COLOR_BGR2GRAY)
flow = None
flow = cv2.calcOpticalFlowFarneback(prev=prev_image_gray,
next=next_image_gray, flow=flow,
pyr_scale=0.8, levels=15, winsize=5,
iterations=10, poly_n=5, poly_sigma=0,
flags=10)
mag, ang = cv2.cartToPolar(flow[...,0], flow[...,1])
hsv = zeros_like(prev)
hsv[...,1] = 255
hsv[...,0] = ang*180/pi/2
hsv[...,2] = cv2.normalize(mag, None, 0, 255, cv2.NORM_MINMAX)
img = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
二、测试案例
1、移动大的图片
▲ 图1.2.1 第一个图片
▲ 图1.2.2 第二个图片
▲ 图1.2.3 处理结果
2、移动小的图片
下面是处理的图片,前后移动较小。
下面是处理结果。
▲ 图1.2.4 处理结果
3、移动中等距离
处理的两个图片。
▲ 图1.2.5 处理结果
4、另外的例子
▲ 图1.2.6 处理结果
※ 总 结 ※
本文给出了利用 CV2 的光流处理算法,并给出了一些典型图片处理结果。
● 相关图表链接:
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/125775491
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)