我正在尝试使用python绑定在OpenCV 2.3.1中创建一个LK跟踪器。当我做的时候
calcOpticalFlowPyrLK(img1, img2,
template_pt, target_pt, status, err,
(win_size_lk, win_size_lk), 0, TERM_CRITERIA_EPS,
(TERM_CRITERIA_EPS | TERM_CRITERIA_COUNT, 10, 0.03), eig)
我正在
TypeError:不是一个numpy数组
,其中
img1, img2 - iplimage
template_pt, target_pt - A List consisting of tuples with two integers eg. [(120,140),(300,400),..]
win_size_lk = 10
eig = 0.001
status = ""
err = None
有关cv2.calcOpticalFlowPyrLK()的更多信息,请点击此处
当我设置
eig = np.array([(0.0,1.0),(1.0,0.0)])
它给我以下错误
TypeError:只能将length-1数组转换为Python标量
这可能是什么问题?
答案 0 :(得分:1)
我已经找到了问题所在。
img1, img2 should be numpy array
template_pt, target_pt should be numpy array
所以,
target_pt, status, track_error = calcOpticalFlowPyrLK(img1,
img2,
template_pt,
target_pt,
winSize=(win_size_lk, win_size_lk),
flags = OPTFLOW_USE_INITIAL_FLOW,
criteria = (TERM_CRITERIA_EPS | TERM_CRITERIA_COUNT, 10, 0.03))
效果很好。