De-warp contours before starting the polygon finding.

Change-Id: I7889c8e5e9f826bef2317f4e7f3306bd65dc32f9
diff --git a/y2019/vision/target_finder.h b/y2019/vision/target_finder.h
index 5957fa6..bdf67f2 100644
--- a/y2019/vision/target_finder.h
+++ b/y2019/vision/target_finder.h
@@ -4,6 +4,7 @@
 #include "aos/vision/blob/region_alloc.h"
 #include "aos/vision/blob/threshold.h"
 #include "aos/vision/blob/transpose.h"
+#include "aos/vision/blob/contour.h"
 #include "aos/vision/debug/overlay.h"
 #include "aos/vision/math/vector.h"
 #include "y2019/vision/target_types.h"
@@ -15,6 +16,7 @@
 using aos::vision::RangeImage;
 using aos::vision::BlobList;
 using aos::vision::Vector;
+using aos::vision::ContourNode;
 
 class TargetFinder {
  public:
@@ -28,8 +30,11 @@
   // filter out obvious or durranged blobs.
   void PreFilter(BlobList *imgs);
 
+  ContourNode* GetContour(const RangeImage &blob);
+  void UnWarpContour(ContourNode* start) const;
+
   // Turn a blob into a polgygon.
-  std::vector<aos::vision::Segment<2>> FillPolygon(const RangeImage &blob,
+  std::vector<aos::vision::Segment<2>> FillPolygon(ContourNode *start,
                                                    bool verbose);
 
   // Turn a bloblist into components of a target.