Example #1
0
//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();
	}

}
Example #2
0
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;
}