2

Pythonバインディングを使用してOpenCV2.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()の詳細については、こちらをご覧ください。

http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html?highlight=opticflow#cv.CalcOpticalFlowPyrLK

設定すると

eig = np.array([(0.0,1.0),(1.0,0.0)])

次のエラーが発生します

TypeError:Pythonスカラーに変換できるのは長さ1の配列のみです

ここで何が問題になる可能性がありますか?

4

1 に答える 1

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))

うまく機能します。

于 2012-06-03T08:48:46.033 に答える