def MakeSelectsAndWeights( self ): global SELECT1, SELECT2 global WEIGHT1, WEIGHT2 a1 = indices((640,))[0] a2 = a1 + a1 * (701.0-640.0)/702.0 a3 = floor(a2) SELECT1 = a3.astype( intc ) SELECT2 = SELECT1 + 1 WEIGHT2 = a2 - a3 WEIGHT1 = 1.0 - WEIGHT2 One more def Centroid( self, ref, curr, mask ): slopes = indices((488,722),int32) nada = zeros((488,722),uint8) result = where(curr > ref, curr-ref, nada) result = where(result > mask, result-mask, nada) xresult = result * slopes[1] yresult = result * slopes[0] total = sum(ravel(asarray(result,int32))) count = sum(ravel(result > 0)) if total == 0: return 360,240,0,0 xpos = sum(ravel(xresult))/total ypos = sum(ravel(yresult))/total return xpos,ypos,total,count Another def Central( self, ref, curr, mask ): slopes = indices((488,722),int32) nada = zeros((488,722),uint8) result = where(curr > ref, curr-ref, nada) result = where(result > mask, result-mask, nada) total = sum(ravel(asarray(result,int32))) count = sum(ravel(result > 0)) if total == 0: print "Count: %d Total: %d" % (count,total) return 361,244,0,0 blur = result[0:-2, 0:-2] blur += result[0:-2, 1:-1] blur += result[0:-2, 2: ] blur += result[1:-1, 0:-2] blur += result[1:-1, 1:-1] blur += result[1:-1, 2: ] blur += result[2: , 0:-2] blur += result[2: , 1:-1] blur += result[2: , 2: ] index = argmax(ravel(blur)) ypos, xpos = divmod(index, 720) xpos += 1 ypos += 1 return xpos,ypos,total,count -- Wayne Watson (Watson Adventures, Prop., Nevada City, CA) (121.01 Deg. W, 39.26 Deg. N) GMT-8 hr std. time) Copper and its alloys have been found effective in hospital sinks, hand rails, beds, ... in significantly reducing bacteria. Estimates are 1/20 people admitted to a hospital become infected, and 1/20 die from the infection. -- NPR Science Friday, 01/16/2009 Web Page: <www.speckledwithstars.net/> _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
I'm looking at a GUI program that handles meteor images. They leave a trail
across the sky. Each video frame (30 fps) provides data on the track, and a
centroid is found around each track point. 'm not familiar with the
algorithm that does this, but part of it is in the three def stmts below.
Maybe someone can hazard a guess? It looks like someone had fun doing this.
- [Tutor] What Centroid Algorithm Is This? Wayne Watson
- Re: [Tutor] What Centroid Algorithm Is This? Eike Welk
- Re: [Tutor] What Centroid Algorithm Is This? Wayne Watson