Auto Exposure:

  - Filter results down to the three best.
  - Changing exposure based on distance to the target or at random.
  - Plumb exposure through the debug framework.
  - Refactor into target finder.

Change-Id: Ia083f56859938bf0825472fd15d248c545f6f2fc
diff --git a/y2019/vision/target_finder.h b/y2019/vision/target_finder.h
index ff4c3f7..0f1575c 100644
--- a/y2019/vision/target_finder.h
+++ b/y2019/vision/target_finder.h
@@ -71,6 +71,9 @@
       const std::vector<IntermediateResult> &results, uint64_t print_rate,
       bool verbose);
 
+  bool TestExposure(const std::vector<IntermediateResult> &results,
+                    int *desired_exposure);
+
   // Get the local overlay for debug if we are doing that.
   aos::vision::PixelLinesOverlay *GetOverlay() { return &overlay_; }
 
@@ -104,6 +107,8 @@
   // Counts for logging.
   size_t frame_count_;
   size_t valid_result_count_;
+
+  int current_exposure_ = 0;
 };
 
 }  // namespace vision