コード例 #1
0
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()
コード例 #2
0
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