0
私はビデオ用のスタビライザーを作っていましたが、私はアルゴリズムを他のものと比較しようとしていましたので、シフトを実装し、キーポイントをオプティカルフローアルゴリズムに渡したかったのです。cv2.calcOpticalFlowPyrLKのimputとしてopencv python cv2.xfeatures2d.SIFTを使用するにはどうすればよいですか?
sift = cv2.xfeatures2d.SIFT_create()
その後、
frame.features = sift.detect(frame_img_gray,None)
new_features, _, _ = cv2.calcOpticalFlowPyrLK(prev_frame_img, frame_img, prev_frame.features, None, **lk_params)
new_features_for_validation, _, _ = cv2.calcOpticalFlowPyrLK(frame_img, prev_frame_img, new_features, None,**lk_params)
だから私は、コンパイラからこのメッセージが表示されます。
new_features, _, _ = cv2.calcOpticalFlowPyrLK(prev_frame_img, frame_img, prev_frame.features, None, **lk_params)
TypeError: prevPts is not a numpy array, neither a scalar
は遅いですが、動作します、ありがとうございます!! –
@SamuelMarcosShermanはnumpyで追加するのが非常に遅いです。代わりに 'np.array([frame.features]のfの[[[f.pt [0]、f.pt [1]])'は速くなります。あなたはまだすべての機能を反復していますが、追加はしていません。 –
このエラーが発生しました –