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]
Beispiel #4
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)