cell_set.get_containing_cell(&pose)->get_centroid(&coarse);
- targets[u]._body_xc.set((pose._body_xc - coarse._head_xc) / coarse._head_radius);
- targets[u]._body_yc.set((pose._body_yc - coarse._head_yc) / coarse._head_radius);
+ targets[u]._body_xc.set((pose._belly_xc - coarse._head_xc) / coarse._head_radius);
+ targets[u]._body_yc.set((pose._belly_yc - coarse._head_yc) / coarse._head_radius);
u++;
pose.horizontal_flip(image->width());
cell_set.get_containing_cell(&pose)->get_centroid(&coarse);
- targets[u]._body_xc.set((pose._body_xc - coarse._head_xc) / coarse._head_radius);
- targets[u]._body_yc.set((pose._body_yc - coarse._head_yc) / coarse._head_radius);
+ targets[u]._body_xc.set((pose._belly_xc - coarse._head_xc) / coarse._head_radius);
+ targets[u]._body_yc.set((pose._belly_yc - coarse._head_yc) / coarse._head_radius);
u++;
}
mother._body_xc.set(x, x + body_resolution);
mother._body_yc.set(y, y + body_resolution);
- // scalar_t dist_min = body_resolution;
- scalar_t dist_min = 1e6;
-
- int nb_got;
-
- Gaussian dist_body_radius_1, dist_body_radius_2, dist_body_tilt;
-
- do {
-
- nb_got = 0;
-
- for(int t = 0; t < nb_total_targets; t++) {
-
- scalar_t dist =
- sqrt(sq(targets[t]._body_xc.middle() - x - body_resolution / 2) +
- sq(targets[t]._body_yc.middle() - y - body_resolution / 2));
-
- if(dist <= dist_min) {
- dist_body_radius_1.add_sample(targets[t]._body_radius_1.middle());
- dist_body_radius_2.add_sample(targets[t]._body_radius_2.middle());
- dist_body_tilt.add_sample(targets[t]._body_tilt.middle());
- nb_got++;
- }
-
- }
-
- dist_min *= 2.0;
- } while(nb_got < min(100, nb_total_targets));
-
- scalar_t zeta = 4;
-
- mother._body_radius_1.set(dist_body_radius_1.expectation() -
- zeta * dist_body_radius_1.standard_deviation(),
- dist_body_radius_1.expectation() +
- zeta * dist_body_radius_1.standard_deviation());
-
- mother._body_radius_2.set(dist_body_radius_2.expectation() -
- zeta * dist_body_radius_2.standard_deviation(),
- dist_body_radius_2.expectation() +
- zeta * dist_body_radius_2.standard_deviation());
-
- mother._body_tilt.set(dist_body_tilt.expectation() -
- zeta * dist_body_tilt.standard_deviation(),
- dist_body_tilt.expectation() +
- zeta * dist_body_tilt.standard_deviation());
-
_body_cells[k++] = mother;
}
}
cell._head_xc.max = x + cell_xy_size;
cell._head_yc.min = y;
cell._head_yc.max = y + cell_xy_size;
- cell._body_xc.min = cell._head_xc.min - pseudo_infty;
- cell._body_xc.max = cell._head_xc.max + pseudo_infty;
- cell._body_yc.min = cell._head_yc.min - pseudo_infty;
- cell._body_yc.max = cell._head_yc.max + pseudo_infty;
+ cell._belly_xc.min = cell._head_xc.min - pseudo_infty;
+ cell._belly_xc.max = cell._head_xc.max + pseudo_infty;
+ cell._belly_yc.min = cell._head_yc.min - pseudo_infty;
+ cell._belly_yc.max = cell._head_yc.max + pseudo_infty;
cell_set->add_cell(&cell);
}
}
scalar_t x = (cell._head_xc.min + cell._head_xc.max) / 2.0;
scalar_t y = (cell._head_yc.min + cell._head_yc.max) / 2.0;
for(int k = 0; k < _nb_body_cells; k++) {
- cell._body_xc.min = (_body_cells[k]._body_xc.min * r) + x;
- cell._body_xc.max = (_body_cells[k]._body_xc.max * r) + x;
- cell._body_yc.min = (_body_cells[k]._body_yc.min * r) + y;
- cell._body_yc.max = (_body_cells[k]._body_yc.max * r) + y;
+ cell._belly_xc.min = (_body_cells[k]._body_xc.min * r) + x;
+ cell._belly_xc.max = (_body_cells[k]._body_xc.max * r) + x;
+ cell._belly_yc.min = (_body_cells[k]._body_yc.min * r) + y;
+ cell._belly_yc.max = (_body_cells[k]._body_yc.max * r) + y;
cell_set->add_cell(&cell);
}
}