def generate_outfile_names(vid, seglen, step, nframes, nreps, stepint, cutoff): outroot = os.path.dirname( mousezopt.generate_outfile_names(vid, seglen, 0, nframes, None, None, None)[1]) scorefile = os.path.join( outroot, 'seg%s_nframes%s_step%s_nreps%s_stepint%s_cutoff%s-score.dict' % (seglen, nframes, step, nreps, stepint, cutoff)) distsfile = os.path.join( outroot, 'seg%s_nframes%s_step%s_nreps%s_stepint%s_cutoff%s-model_dists.dict' % (seglen, nframes, step, nreps, stepint, cutoff)) return scorefile, distsfile
def generate_outfile_names(vid,seglen,step,nframes,nreps,stepint,cutoff): outroot = os.path.dirname(mousezopt.generate_outfile_names(vid,seglen,0,nframes,None,None,None)[1]) scorefile = os.path.join(outroot,'seg%s_nframes%s_step%s_nreps%s_stepint%s_cutoff%s-score.dict' % (seglen,nframes,step,nreps,stepint,cutoff) ) distsfile = os.path.join(outroot,'seg%s_nframes%s_step%s_nreps%s_stepint%s_cutoff%s-model_dists.dict' % (seglen,nframes,step,nreps,stepint,cutoff) ) return scorefile,distsfile
#get a dummy frame for pixel dimensions stream = cv.CaptureFromFile(vid) SHAPE = vidtools.array_from_stream(stream).shape obj_train_arcs_d = {} obj_arcs_d = {} size_train_values_d = {} size_values_d = {} fol_train_values_d = {} fol_values_d = {} print >> sys.stderr, 'load second pass blob outlines; calculate object properties', for i in range(nreps): offset = (i * seglen * step) + start_offset source_f = mousezopt.generate_outfile_names(vid, seglen, offset, nframes, peak_max, peak_min, target_int_step)[1] ols_d = eval(open(source_f).read()) ols = ([ v for k, v in ols_d.items() if numpy.abs(cutoff - k) < target_int_step / 2 ] + [[]])[0] objs_train = [ o for o in vidtools.find_objs(ols, SHAPE, n_obj, n_obj)[0] if len(o) > 0 ] obj_train_arcs_d[offset] = objs_train size_train_values_d[offset] = [[ vidtools.size_of_polygon(ols[i][j]) for i, j in o ] for o in objs_train] fol_train_values_d[offset] = [
n_obj = int(n_obj) #get a dummy frame for pixel dimensions stream = cv.CaptureFromFile(vid) SHAPE = vidtools.array_from_stream(stream).shape obj_train_arcs_d = {} obj_arcs_d = {} size_train_values_d = {} size_values_d = {} fol_train_values_d = {} fol_values_d = {} print >> sys.stderr, 'load second pass blob outlines; calculate object properties', for i in range(nreps): offset = (i*seglen*step)+start_offset source_f = mousezopt.generate_outfile_names(vid,seglen,offset,nframes,peak_max,peak_min,target_int_step)[1] ols_d = eval(open(source_f).read()) ols = ([v for k,v in ols_d.items() if numpy.abs(cutoff-k) < target_int_step/2]+[[]])[0] objs_train = [o for o in vidtools.find_objs(ols,SHAPE,n_obj,n_obj)[0] if len(o) > 0] obj_train_arcs_d[offset] = objs_train size_train_values_d[offset] = [[vidtools.size_of_polygon(ols[i][j]) for i,j in o] for o in objs_train] fol_train_values_d[offset] = [vidtools.fol_from_obj_arc(o,ols,SHAPE) for o in objs_train] objs = [o for o in vidtools.find_objs(ols,SHAPE)[0] if len(o) > 0] obj_arcs_d[offset] = objs size_values_d[offset] = [[vidtools.size_of_polygon(ols[i][j]) for i,j in o] for o in objs] fol_values_d[offset] = [vidtools.fol_from_obj_arc(o,ols,SHAPE) for o in objs] print >> sys.stderr, '.', print >> sys.stderr, 'done' if len(reduce(lambda x,y:x+y,size_train_values_d.values())) > 0 and len(reduce(lambda x,y:x+y,fol_train_values_d.values())) > 0: print >> sys.stderr, 'calculate scoring distributions ...' ,