gpt4 book ai didi

python - OpenCV Python calcOpticalFlowFarneback

转载 作者:太空狗 更新时间:2023-10-29 17:56:18 27 4
gpt4 key购买 nike

非常感谢,如果有人可以帮助我。我尝试使用第 216 页末尾的“OReilly Programming Computer Vision with Python”一书的示例。

    #!/usr/bin/env python

import cv2
def draw_flow(im,flow,step=16):
h,w = im.shape[:2]
y,x = mgrid[step/2:h:step,step/2:w:step].reshape(2,-1)
fx,fy = flow[y,x].T

# create line endpoints
lines = vstack([x,y,x+fx,y+fy]).T.reshape(-1,2,2)
lines = int32(lines)

# create image and draw
vis = cv2.cvtColor(im,cv2.COLOR_GRAY2BGR)
for (x1,y1),(x2,y2) in lines:
cv2.line(vis,(x1,y1),(x2,y2),(0,255,0),1)
cv2.circle(vis,(x1,y1),1,(0,255,0), -1)
return vis


cap = cv2.VideoCapture(0)

ret,im = cap.read()
prev_gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

while True:
# get grayscale image
ret,im = cap.read()
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

# compute flow
#flow = cv2.calcOpticalFlowFarneback(prev_gray,gray,None,0.5,3,15,3,5,1.2,0)
flow = cv2.calcOpticalFlowFarneback(prev_gray,gray,float(0),float(0),3,15,3,5,float(1),0)
prev_gray = gray

# plot the flow vectors
cv2.imshow('Optical flow',draw_flow(gray,flow))
if cv2.waitKey(10) == 27:
break

我在终端(LXUbuntu、lxterminal)中执行,我得到以下错误:

VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
Traceback (most recent call last):
File "hw.py", line 35, in <module>
flow = cv2.calcOpticalFlowFarneback(prev_gray,gray,None,0.5,3,15,3,5,1.2,0)
TypeError: a float is required

我知道问题出在函数 calcOpticalFlowFarneback 中,因为它需要一个 float ,因此,我尝试 calcOpticalFlowFarneback(prev_gray,gray,None,float(0.5),3,15,3,5,float(1.2 ),0) 但不起作用。

非常感谢。

最佳答案

您需要稍微更改一下代码。

首先,包括 Numpy 库,因为 mgridint32vstack 等方法是 numpy 函数。

所以在代码的顶部,添加:

from numpy import *

其次,关于您的问题,第四个参数应该是 int。您已将其作为 float 提供。将其设置为 1(或 3,如您所愿)。最后一个参数是输出本身。你不需要它。所以删除它。

所以我的最终声明如下所示(对我来说效果很好):

flow = cv2.calcOpticalFlowFarneback(prev_gray,gray,0.5,1,3,15,3,5,1)

试试这个,如果有任何错误请告诉我。

关于python - OpenCV Python calcOpticalFlowFarneback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13685771/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com