public void process(final SimpleImageSequence<T> sequence) {

    if (!sequence.hasNext()) throw new IllegalArgumentException("Empty sequence");

    image = sequence.next();
    gui.setFrame((BufferedImage) sequence.getGuiImage());
    ShowImages.showWindow(gui, "Circulant Tracker");

    //		tracker.initialize(image,273,156,358-273,293-156);

    paused = true;

    while (paused) {
      Thread.yield();
    }

    int totalFrames = 0;
    long totalTime = 0;

    while (sequence.hasNext()) {
      totalFrames++;

      image = sequence.next();
      gui.setFrame((BufferedImage) sequence.getGuiImage());

      long before = System.nanoTime();
      tracker.performTracking(image);
      long after = System.nanoTime();

      totalTime += after - before;
      System.out.println("FPS = " + (totalFrames) / (totalTime / 2e9));

      gui.update(tracker);

      Rectangle2D_F32 r = tracker.getTargetLocation();
      System.out.println("Target: " + r);
      gui.repaint();

      while (paused) {
        Thread.yield();
      }
    }
    System.out.println("DONE");
  }