36 double x2_coarse = *x2;
37 double y2_coarse = *y2;
38 if (!
coarse_tracker_->Track(image1, image2, x1, y1, &x2_coarse, &y2_coarse)) {
39 LG <<
"Coarse tracker failed.";
43 double x2_fine = x2_coarse;
44 double y2_fine = y2_coarse;
45 if (!
fine_tracker_->Track(image1, image2, x1, y1, &x2_fine, &y2_fine)) {
46 LG <<
"Fine tracker failed.";
51 double dx2 = x2_coarse - x2_fine;
52 double dy2 = y2_coarse - y2_fine;
53 double fine_shift =
sqrt(dx2 * dx2 + dy2 * dy2);
55 LG <<
"Refinement: dx=" << dx2 <<
" dy=" << dy2 <<
", d=" << fine_shift;
59 if (fine_shift < 2.0) {
60 LG <<
"Refinement small enough; success.";
65 LG <<
"Refinement was too big; failing.";