cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE) capture = cvCreateFileCapture(__test__) loop = True while(loop): frame = cvQueryFrame(capture) if (frame == None): break gray = cvCreateImage ((frame.width, frame.height), 8, 1) cvCvtColor( frame, gray, CV_BGR2GRAY ) ipl = Ipl2PIL(gray) ipl = ipl.resize((int(frame.width/__scale__),int(frame.height/__scale__)), Image.ANTIALIAS) if frame_no > 25: curr = np.array(ipl) if prev != None: u, v = lk.lk(prev, curr, track_x, track_y, win) print u, v print np.floor(u), np.floor(v) track_x += np.floor(u) track_y += np.floor(v) prev = curr ipl2 = PIL2Ipl(ipl) cvCircle(ipl2, (int(track_x), int(track_y)), 2, CV_RGB(255,255,255), 0, CV_AA, 0 ) cvShowImage("Example2", ipl2) frame_no += 1 char = cvWaitKey(33) if (char != -1):
return 250 - y while True: if math.fmod(frame_no, 5) == 0: pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, sz[0], sz[1]) pb = pb.get_from_drawable(w, w.get_colormap(), 0, 0, 0, 0, sz[0], sz[1]) width, height = pb.get_width(), pb.get_height() im = PIL.Image.fromstring("RGB", (width, height), pb.get_pixels()) im = im.crop(box) im = ImageOps.grayscale(im) im = im.resize((250, 250), PIL.Image.ANTIALIAS) cv_img = PIL2Ipl(im) if prev != None: res = lk.lk(g, prev, im, track_x, track_y, 12) for (i, j, u, v) in res: try: cvLine(cv_img, (i, j), (i + int(u), j + int(v)), color) cvCircle(cv_img, (i + int(u), j + int(v)), 2, color) except Exception, e: pass prev = im.copy() cvShowImage("fps", cv_img) ''' if not fwd: cmd = Command(2, "test") fwd = True cmd.start()
capture = cvCreateFileCapture(__test__) loop = True while (loop): frame = cvQueryFrame(capture) if (frame == None): break gray = cvCreateImage((frame.width, frame.height), 8, 1) cvCvtColor(frame, gray, CV_BGR2GRAY) ipl = Ipl2PIL(gray) ipl = ipl.resize( (int(frame.width / __scale__), int(frame.height / __scale__)), Image.ANTIALIAS) if frame_no > 25: curr = np.array(ipl) if prev != None: u, v = lk.lk(prev, curr, track_x, track_y, win) print u, v print np.floor(u), np.floor(v) track_x += np.floor(u) track_y += np.floor(v) prev = curr ipl2 = PIL2Ipl(ipl) cvCircle(ipl2, (int(track_x), int(track_y)), 2, CV_RGB(255, 255, 255), 0, CV_AA, 0) cvShowImage("Example2", ipl2) frame_no += 1 char = cvWaitKey(33) if (char != -1):
def compute_flow(self): # lucas kanade #[http://ascratchpad.blogspot.com/2011/10/optical-flow-lucas-kanade-in-python.html] # FIXME quite slow to compute, ~3 sec per frame return lk.lk(self.im1,self.im2,self.win) return (u,v)
color = (100,100,255) def flip(y): return 250-y while True: if math.fmod(frame_no,5) == 0: pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1]) pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1]) width,height = pb.get_width(),pb.get_height() im = PIL.Image.fromstring("RGB",(width,height),pb.get_pixels()) im = im.crop(box) im = ImageOps.grayscale(im) im = im.resize((250,250), PIL.Image.ANTIALIAS) cv_img = PIL2Ipl(im) if prev != None: res = lk.lk(g, prev, im, track_x, track_y, 12) for (i,j,u,v) in res: try: cvLine(cv_img,(i,j),(i+int(u),j+int(v)),color) cvCircle(cv_img,(i+int(u),j+int(v)),2,color) except Exception, e: pass prev = im.copy() cvShowImage("fps", cv_img) ''' if not fwd: cmd = Command(2, "test") fwd = True cmd.start() '''