光流法draw_flow()函数报错

光流法draw_flow()函数报错

 1 import cv2
 2 from scipy import *
 3
 4
 5 def draw_flow(im, flow, step=16):
 6     """ Plot optical flow at sample points
 7     spaced step pixels apart. """
 8     h, w = im.shape[:2]
 9     y, x = mgrid[step / 2:h:step, step / 2:w:step].reshape(2, -1)
10     fx,fy = flow[y, x].T
11     # create line endpoints
12     lines = vstack([x, y, x + fx, y + fy]).T.reshape(-1, 2, 2)
13     lines = int32(lines)
14     # create image and draw
15     vis = cv2.cvtColor(im, cv2.COLOR_GRAY2BGR)
16     for (x1, y1), (x2, y2) in lines:
17         cv2.line(vis, (x1, y1), (x2, y2), (0, 255, 0), 1)
18     cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1)
19     return vis
20 # setup video capture
21 cap = cv2.VideoCapture(0)
22 ret, im = cap.read()
23 prev_gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
24 while True:
25 # get grayscale image
26     ret, im = cap.read()
27     gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
28     # compute flow
29     flow = cv2.calcOpticalFlowFarneback(prev_gray, gray, None, 0.5, 3, 15, 3, 5, 1.2, 0)
30     prev_gray = gray
31     # plot the flow vectors
32     cv2.imshow(‘Optical flow‘, draw_flow(gray, flow))
33     if cv2.waitKey(10) == 27:
34         break

报错:

解决方案行加上.astype(int)就解决了

y, x = mgrid[step / 2:h:step, step / 2:w:step].reshape(2, -1).astype(int) #以网格的形式选取二维图像上等间隔的点,这里间隔为16,reshape成2行的array

原文地址:https://www.cnblogs.com/jqpy1994/p/10585628.html

时间: 2024-11-05 19:45:07

光流法draw_flow()函数报错的相关文章

Linux 下使用C语言 gets()函数报错

在Linux下,使用 gets(cmd) 函数报错:warning: the 'gets' function is dangerous and should not be used. 解决办法:采用 fgets(cmd,100,stdin);//100为size 问题解决! fgets从stdin中读字符,直至读到换行符或文件结束,但一次最多读size个字符.读出的字符连同换行符存入缓冲区cmd中.返回指向cmd的指针. gets把从stdin中输入的一行信息存入cmd中,然后将换行符置换成串结

Linux下编译C代码,出现tan函数报错的情况

undefined reference to `tan' 但是已经包含了头文件 <math.h>了,可还是报错,说是找不到tan 这个问题的原因不是很清楚, 但是网上给出的方案,就是编译的时候 加上参数 -lm 有说l表示Lib ,m表示 math.h  , ****************************************************************************************************** 以下是一些说明 使用math.h

yii用empty()函数报错?

yii用empty()函数报错? 用了empty()是否为空判断,页面就空白.晕!!!!

前端控制台 JavaScript函数报错 SyntaxError: expected expression, got &#39;;&#39; SyntaxError: expected expression, got &#39;if&#39;

在火狐浏览器下调试时, 页面报错SyntaxError: expected expression, got ';'或者SyntaxError: expected expression, got 'if'等 其实就是js部分某个变量没有赋值到,例如: // 这种echo在前端输出的是空 var test = <?php echo 1 > 0 ? true : false ?>; 在前端js显示的是: var test = ; 注意: 在前端 test = ; 这样的变量没有赋值到就会报错,

[转]html页面调用js文件里的函数报错onclick is not defined处理方法

原文地址:http://blog.csdn.net/ywl570717586/article/details/53130863 今天处理html标签里的onclick功能的时候总是报错:Uncaught ReferenceError: dosave is not defined(-) 找了半天都没发现错在哪,最后发现原来是我写法不对,正确写法如下: html: [html] view plain copy <input type="button" value="立即登录

匿名自执行函数报错

js 报错(intermediate value)(...) is not a function 2017-02-18 17:49 1497人阅读 评论(0) 收藏 举报 [javascript] view plain copy //通过函数构造器定义 function beverage_treat(){ } // 这里不用加分号 //通过函数表达式定义, 此时我们认为该函数是一个变量 var beverage_treat = function(){ }; // 这里一定要加分号,不然在后面紧跟

python交互环境中导入文件中自定义的函数报错

今天在学习python自定义函数时,遇到一个问题:我用notepad++编辑器自定义的函数,在交互环境下使用from 文件名 import 函数名 导入时,一直报错,检查了好几遍,一直报这个错: 代码如下: # -*-coding:utf-8 -*- #自定义函数 def 函数名(参数1,参数2...): 然后在缩进体内编写函数体,用return返回值 #自定义求绝对值函数 #def my_abs(x): #如果参数类型不是int或者float,会抛出类型错误异常 # if not isinst

geopandas overlay 函数报错问题解决方案

前言 这篇文章依旧是基于上一篇文章(使用Python实现子区域数据分类统计)而写,此文章中介绍了使用 geopandas 的 overlay 函数对两个 GeoDataFrame 对象取相交或相异的部分,即进行空间压盖分析. 此函数封装的非常好,解决了我们的主要问题,在我自己的 Windows 系统上运行也正常,但是部署到 Ubuntu 16.04 后就出了问题,经过层层分析,最终发现是 Rtree 的问题. 本文介绍问题的来龙去脉和解决方案. 问题重现 创建两个 GeoDataframe 对象

解决VS2017中使用scanf函数报错的问题

我们在VS2017中如果使用C语言的scanf输入函数,编译的时候编译器会报error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 这个是因为VS使用的是C11新标准导致的 解决方法如下 1.在文件头部