Measure processing time.
It's averaging ~60 fps on my laptop, just counting the time to process frames and draw target markers into the frames, not counting display time.

git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4130 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/971CV/src/org/frc971/VisionTuner.java b/971CV/src/org/frc971/VisionTuner.java
index 757b46c..98ccb41 100644
--- a/971CV/src/org/frc971/VisionTuner.java
+++ b/971CV/src/org/frc971/VisionTuner.java
@@ -50,6 +50,11 @@
     private final JSlider satMinSlider = new JSlider();

     private final JSlider valMinSlider = new JSlider();

 

+    private static int totalFrames;

+    private static double totalMsec;

+//    private static double minMsec = Double.MAX_VALUE;

+//    private static double maxMsec;

+

     public VisionTuner(String[] imageFilenames) {

         cameraFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

 

@@ -131,8 +136,20 @@
         WPIColorImage cameraImage = testImages[currentIndex];

         cameraFrame.setTitle(testImageFilenames[currentIndex]);

 

+        long startTime = System.nanoTime();

         WPIImage processedImage = recognizer.processImage(cameraImage);

+        long endTime = System.nanoTime();

+

         cameraFrame.showImage(processedImage.getBufferedImage());

+

+        double milliseconds = (endTime - startTime) / 1e6;

+        ++totalFrames;

+        totalMsec += milliseconds;

+//        minMsec = Math.min(minMsec, milliseconds);

+//        maxMsec = Math.max(maxMsec, milliseconds);

+        System.out.format("Processing took %.2f ms, %.2f fps, %.2f avg%n",

+        	milliseconds, 1000 / milliseconds,

+        	1000 * totalFrames / totalMsec);

     }

 

     private void previousImage() {