fcopy = frameav.copy() print >>sys.stderr,'finalize mouse calls' for i,f in enumerate(frames): #print i #get xy coords, outlines of above-cut regions, and mean z-scores in each outline xy,ol,zsc = vidtools.find_mouse(f,fcopy,zcut=mousezcut,outline_zcut=mousezcut/2.0,grow_by=mouse_grow_by,preshrink=mouse_preshrink) if opts['ground_anchors'] is None and opts['burrowz'] is None: pass else: for p in ol: try: vidtools.subtract_outline(p,frameav) except: print >> sys.stderr, 'failure in frame %s' % i size = [len(filter(None,vidtools.shrink_mask(vidtools.mask_from_outline(p,f.shape),mouse_grow_by).flat)) for p in ol] mlen = [max([vidtools.hypotenuse(p1,p2) for p1 in p for p2 in p]) for p in ol] miceli.append( (images[i],xy) ) miceoutli.append( (images[i],ol) ) micez.append( (images[i],zsc) ) micesize.append( (images[i],size) ) micelen.append( (images[i],mlen) ) if i % tick == 0: print >> sys.stderr, 'frame %s done' % i mice = dict(miceli) miceout = dict(miceoutli) micez = dict(micez) micesize = dict(micesize) micelen = dict(micelen) try:
Util.merge_dictlist([objs_fols,to_retire_objs_fols]), \ size_h, size_bins, fol_h, fol_bins,SHAPE) prelast_masked = prelast_avg.copy() prelast_masked[prelast_mm] = numpy.mean(prelast_avg[:50, :50]) last_masked = last_avg.copy() last_masked[last_mm] = numpy.mean(last_avg[:50, :50]) this_masked = this_avg.copy() this_masked[this_mm] = numpy.mean(this_avg[:50, :50]) if opts.antfarm_config: #antfarm-specific analysis steps digdiffs.append(prelast_masked - this_masked) if len(digdiffs) > 3: nll = digdiffs.pop(0) if newactols and newactols[-1]: prevactmask += reduce(lambda x, y: x + y, [ vidtools.shrink_mask( vidtools.mask_from_outline(ol, this_masked.shape), 1) for ol in newactols[-1] ]) if len(digdiffs) > 1: m = digdiffs[-2] > 0.2 #ARBITRARY m[last_mm] = True #add mousemask to burrow area m[vidtools.grow_mask(vidtools.shrink_mask(prevactmask, 1), 1)] = False #MASK PREVIOUS DIGGING m[groundmask] = False #AND EVERYTHING ABOVE FIRST GROUND if opts.outline_engine == 'homebrew': newactols.append( vidtools.chain_outlines_from_mask(m, preshrink=1, grow_by=1, debug=False, return_termini=False,
Util.merge_dictlist([objs_sizes,to_retire_objs_sizes]), \ Util.merge_dictlist([objs_fols,to_retire_objs_fols]), \ size_h, size_bins, fol_h, fol_bins,SHAPE) prelast_masked = prelast_avg.copy() prelast_masked[prelast_mm] = numpy.mean(prelast_avg[:50,:50]) last_masked = last_avg.copy() last_masked[last_mm] = numpy.mean(last_avg[:50,:50]) this_masked = this_avg.copy() this_masked[this_mm] = numpy.mean(this_avg[:50,:50]) if opts.antfarm_config: #antfarm-specific analysis steps digdiffs.append(prelast_masked-this_masked) if len(digdiffs) > 3: nll = digdiffs.pop(0) if newactols and newactols[-1]: prevactmask += reduce(lambda x,y:x+y, [vidtools.shrink_mask(vidtools.mask_from_outline(ol,this_masked.shape),1) for ol in newactols[-1]]) if len(digdiffs) > 1: m = digdiffs[-2] > 0.2 #ARBITRARY m[last_mm] = True #add mousemask to burrow area m[vidtools.grow_mask(vidtools.shrink_mask(prevactmask,1),1)] = False #MASK PREVIOUS DIGGING m[groundmask] = False #AND EVERYTHING ABOVE FIRST GROUND if opts.outline_engine == 'homebrew': newactols.append(vidtools.chain_outlines_from_mask(m,preshrink=1,grow_by=1,debug=False,return_termini=False,order_points=True,sort_outlines=False)) prevol = vidtools.chain_outlines_from_mask(prevactmask,preshrink=1,grow_by=1,debug=False,return_termini=False,order_points=True,sort_outlines=False) elif opts.outline_engine == 'shapely': newactols.append(vidtools.chain_outlines_from_mask_shapely(m,preshrink=1,grow_by=1)) prevol = vidtools.chain_outlines_from_mask_shapely(prevactmask,preshrink=1,grow_by=1) else: print >> sys.stderr, 'outline_engine must be one of %s' % (['homebrew','shapely']) raise ValueError digol = newactols[-1]
grow_by=mouse_grow_by, preshrink=mouse_preshrink) if opts['ground_anchors'] is None and opts['burrowz'] is None: pass else: for p in ol: try: vidtools.subtract_outline(p, frameav) except: print >> sys.stderr, 'failure in frame %s' % i size = [ len( filter( None, vidtools.shrink_mask( vidtools.mask_from_outline(p, f.shape), mouse_grow_by).flat)) for p in ol ] mlen = [ max([vidtools.hypotenuse(p1, p2) for p1 in p for p2 in p]) for p in ol ] miceli.append((images[i], xy)) miceoutli.append((images[i], ol)) micez.append((images[i], zsc)) micesize.append((images[i], size)) micelen.append((images[i], mlen)) if i % tick == 0: print >> sys.stderr, 'frame %s done' % i mice = dict(miceli) miceout = dict(miceoutli)