def main(args): assert args.path_to_video is not None KFilter = KalmanFilter(args.Q, args.R) MAnly = MotionAnalyzer(args.path_to_video) Vcorr = VideoCorrector(args.path_to_video) Tx, Ty, _ = MAnly.process() res_x, res_y = KFilter.filter(Tx), KFilter.filter(Ty) delta_x = np.array(Tx) - np.array(res_x) delta_y = np.array(Ty) - np.array(res_x) Vcorr.correct(zip(delta_x, delta_y))
from MotionAnalyser import MotionAnalyzer from utils import plot_Tx_Ty_Rot, plot_Tx_Ty import numpy as np from KalmanFilter import KalmanFilter from VideoProcessor import VideoCorrector KFilter = KalmanFilter() MAnly = MotionAnalyzer('./output/IMG_1432_filted.mp4') Vcorr = VideoCorrector('./output/IMG_1432_filted.mp4') Tx, Ty, _ = MAnly.process() # MAnly.save() plot_Tx_Ty(Tx, Ty) res_x, res_y = KFilter.filter(Tx), KFilter.filter(Ty) plot_Tx_Ty(res_x, res_y) delta_x = np.array(Tx) - np.array(res_x) delta_y = np.array(Ty) - np.array(res_y) Vcorr.correct(zip(delta_x, delta_y)) print('finish')
#print z_mw #print("all valid: %d" % (z_all_valid)) #print z_all #if not z_lw_valid and not z_mw_valid: # print "Warning: invalid Z" #print('z') #print lw_z, mw_z #break #print xpred #print Ppost #print lw_z xhat_lw[:,idx], Ppost_lw = \ kalman.filter(xpred_lw, Ppost_lw, z_lw, z_lw_valid) xpred_lw = xhat_lw[:, idx] xhat_mw[:,idx], Ppost_mw = \ kalman.filter(xpred_mw, Ppost_mw, z_mw, z_mw_valid) xpred_mw = xhat_mw[:, idx] xhat_all[:,idx], Ppost_all = \ kalman.filter(xpred_all, Ppost_all, z_all, z_all_valid) xpred_all = xhat_all[:, idx] #print xhat_lw[:,idx], xhat_mw[:,idx] #rect = ((xpred[0] - xpred[4]*0.5, xpred[2] - xpred[5]*0.5), (xpred[4], xpred[5]), 0.0) rect = ((xpred_all[0], xpred_all[2]), (xpred_all[4], xpred_all[5]), 0.0) box = np.int0(cv2.boxPoints(rect))