def Merge(ID): info = Info.GetVideoInfo(ID) f1_name = Info.Get3DRansacFileName(info) subprocess.call('cp %s %s/ransac_3D_result_old.json' % (f1_name, info['match_path']), shell=True) f2_name = info['match_path'] + '/timeline.json' f1 = open(f1_name, 'r') f2 = open(f2_name, 'r') data = json.load(f1) tim = json.load(f2) data['id'] = tim['id'] data['time'] = tim['time'] f1.close() f2.close() f1 = open(f1_name, 'w') f1.write(json.dumps(data, indent=4)) f1.close()
def RunRansac(ID): print ID info = Info.GetVideoInfo(ID) data = np.load(Info.GetMatchResultExtractPointFileName(info)) #data2 = data[1] #data[0] = data[0][np.abs(data[1]) <= 3000] #data[1] = data[1][np.abs(data[1]) <= 3000] #data2 = data[1i] try: M, align_data = RANSAC.RANSAC_affine(data[0], data[1], 10000, 5) except: return if M is None: return print M #print np.reshape(M, [12]) try: M = np.reshape(M, [12]).astype(float) except: return gcp = Info.ReadGCPData(info) data = Info.ReadReconstructionData(info) trajectory = {} for shot in data['shots']: [x, y, z] = optical_center(data['shots'][shot]) trajectory[shot] = [x, y, z] data['gcp'] = gcp #print gcp data['transformation'] = list(M) #print type(M[0]) data['trajectory'] = trajectory #print trajectory f_name = Info.Get3DRansacFileName(info) f = open(f_name, 'w') f.write(json.dumps(data, indent=4)) f.close() print '%s ransac finish' % ID