示例#1
0
def reprocess_movies(movie_dataset, name=None, save=False):
    new_movie_dataset = {}
    for key, npmovie in movie_dataset.items():
        print "processing: ", key

        pm.segment_fly(npmovie)
        pm.calc_obj_motion(npmovie)
        pm.smooth_legs(npmovie)
        clas.calc_fly_coordinates(npmovie)
        calc_frame_of_landing(npmovie)
        calc_timestamps(npmovie)

        try:
            align_sa1_flydra(npmovie)
        except:
            pass

        mnpmovie = pm.MiniNPM(npmovie)
        mnpmovie.behavior = copy.copy(npmovie.behavior)
        mnpmovie.path = copy.copy(npmovie.path)
        mnpmovie.posttype = copy.copy(npmovie.posttype)
        mnpmovie.extras = copy.copy(npmovie.extras)
        mnpmovie.id = copy.copy(npmovie.id)
        del (npmovie)

        new_movie_dataset.setdefault(mnpmovie.id, mnpmovie)

    if save:
        if name is None:
            name = "sa1_movie_dataset_2_repro"
        pm.save(new_movie_dataset, name)

    return new_movie_dataset
示例#2
0
def process_movie(MOVIE_ID, movie_info=None, dataset=None): 
        
        if movie_info is None:
            filename = '/home/floris/data/windtunnel/SA1/movie_info'
            fname = (filename)  
            fd = open( fname, mode='r' )
            movie_info = pickle.load(fd)
            fd.close()
        
        movie_filename = movie_info[MOVIE_ID]['Path'] + MOVIE_ID + '.avi'
        print 'loading: ', movie_filename
        movie = pm.Movie(movie_filename)
        npmovie = pm.npMovie()
        
        npmovie.objid = movie_info[MOVIE_ID]['Obj_ID']
        npmovie.epochtime = movie_info[MOVIE_ID]['EpochTime']
        npmovie.filename = MOVIE_ID
        
        npmovie.id = MOVIE_ID
        npmovie.behavior = movie_info[MOVIE_ID]['Behavior']
        npmovie.path = movie_info[MOVIE_ID]['Path']
        npmovie.posttype = movie_info[MOVIE_ID]['PostType']
        npmovie.extras = movie_info[MOVIE_ID]['Extras']
        npmovie.trigger_stamp = movie_info[MOVIE_ID]['Trigger Stamp']
        npmovie.timestamps = movie_info[MOVIE_ID]['Timestamps']

        # make a mask
        mask = np.ones([movie.height, movie.width])
        mask[0:movie.height-movie.width, :] = 0
        movie.mask = mask

        # make a tracking mask -- 0 where no tracking desired
        tracking_mask = np.abs(nim.plot_circle(1024,1024,[512,512], 150)-1)
        npmovie.tracking_mask = tracking_mask

        npmovie.calc_background(movie)
        npmovie.load_frames(movie, timerange=None)
        npmovie.fps = 5000.
        npmovie.obj = pm.Object(npmovie)
        pm.auto_adjust_uimg(npmovie)
        pm.segment_fly(npmovie)
        
        frames = smp.get_active_frames(npmovie)
        if len(frames) < 5: 
            del(movie)
            return npmovie
        
        pm.calc_obj_pos(npmovie)
        pm.calc_obj_motion(npmovie)
        pm.smooth_legs(npmovie)
        pm.calc_polarpos(npmovie)
        pm.smooth_axis_ratio(npmovie)
        
        trajec, time_err = sa1a.get_flydra_trajectory(npmovie, dataset)
        print 'trajectory in process_movie: ', trajec
        npmovie.trajec = copy.copy(trajec)
            
        clas.calc_fly_coordinates(npmovie)
        smp.calc_frame_of_landing(npmovie)
        
        if trajec is not None:
            smp.sync_2d_3d_data(npmovie)
            if len(npmovie.sync2d3d.frames3d) > 2:
                smp.calc_body_orientations(npmovie)
                smp.calc_smoothyaw(npmovie, plot=False)
        else:
            npmovie.sync2d3d = None
        
        npmovie.cluster = None
        #strobe_img = pm.strobe_image(movie)
        #movie_info[MOVIE_ID].setdefault('StrobeImg', strobe_img)

        #npmovie_filename = '/home/floris/data/windtunnel/SA1/sa1_npmovie_' + MOVIE_ID
        #pm.save(npmovie, npmovie_filename)
        
        del(movie)
        return npmovie
示例#3
0
def recalc_motion_movies(movie_dataset):
    for key, npmovie in movie_dataset.items():
        pm.calc_obj_motion(npmovie)
        pm.smooth_legs(npmovie)
        clas.calc_fly_coordinates(npmovie)
        calc_frame_of_landing(npmovie)