//start the tracker void MainWindow::start_tracking() { cvNamedWindow("binary"); cvNamedWindow("vid"); IplImage* image=NULL; IplImage* binary_image = NULL; //int k = 0; //skipped frame count clock_t start_time = clock(); while(tracker_state == STATE_STARTED_TRACKING && ((image = video_loader.next_frame())!= NULL)) { tracker->next_image(image); binary_image = tracker->get_binary_model(); draw_targets(image); //Record when there is substantial motion if (config->record_activity) { cout << "RECORDING" << endl; record_activity(image); } cvShowImage("binary", binary_image); cvShowImage("vid", image); cvWaitKey(1); } clock_t elapsed_time = clock() - start_time; cout << "clock ticks = " << elapsed_time << endl; cout << "seconds = " << (float)elapsed_time/(float)CLOCKS_PER_SEC << endl; if (tracker_state == STATE_STARTED_TRACKING && !image) { //video is over, terminate tracking. tracker->end_tracking(); ReleaseVideoWriter(); ReleaseVideoBuffer(); tracker_state = STATE_NOT_STARTED; //Update the trace table update_trace_list(); //Update the target table update_target_list(); //Update the elevator list table update_event_list(); update_gui(); } }
int main(){ int i,count=0; cairo_surface_t *cs = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W,H); int s=(W+SPACING-1)/SPACING+1; float *data = calloc((W+SPACING-1)/SPACING,sizeof(*data)); for(i=0;i<s;i++) data[i] = -sin((i-.35)/s*2*M_PI)*.9; clear_surface(cs); draw_quant(cs); draw_axis(cs,0); draw_samples(cs,data,0); write_frame(cs,"quant",count++); /* fade in lines */ for(i=0;i<FRAMES;i++){ clear_surface(cs); draw_quant(cs); draw_axis(cs,0); draw_targets(cs,data,(float)i/FRAMES); draw_samples(cs,data,0); write_frame(cs,"quant",count++); } /* fade in arrows */ for(i=0;i<FRAMES;i++){ clear_surface(cs); draw_quant(cs); draw_axis(cs,0); draw_targets(cs,data,1); draw_samples(cs,data,0); draw_arrows(cs,data,0,(float)i/FRAMES); write_frame(cs,"quant",count++); } /* move */ for(i=0;i<FRAMES;i++){ clear_surface(cs); draw_quant(cs); draw_axis(cs,0); draw_targets(cs,data,1); draw_samples(cs,data,(float)i/FRAMES); draw_arrows(cs,data,(float)i/FRAMES,1); write_frame(cs,"quant",count++); } /* fade out all */ for(i=0;i<FRAMES;i++){ clear_surface(cs); draw_quant(cs); draw_axis(cs,0); draw_targets(cs,data,1.-(float)i/FRAMES); draw_samples(cs,data,1); draw_arrows(cs,data,1,1-(float)i/FRAMES); write_frame(cs,"quant",count++); } clear_surface(cs); draw_quant(cs); draw_axis(cs,0); draw_samples(cs,data,1); write_frame(cs,"quant",count++); cairo_surface_destroy(cs); return 0; }