40 const auto& measurement_sub_image = measurement_frame->getSubtractedImage();
41 const auto& measurement_var_image = measurement_frame->getVarianceMap();
42 const auto& measurement_var_threshold = measurement_frame->getVarianceThreshold();
46 const auto& detection_thresh_image = detection_frame->getThresholdedImage();
52 auto detection_coordinate_system = detection_frame->getCoordinateSystem();
53 auto measurement_coordinate_system = measurement_frame->getCoordinateSystem();
57 const int x_pix =
static_cast<int>(centroid.getCentroidX() + 0.5);
58 const int y_pix =
static_cast<int>(centroid.getCentroidY() + 0.5);
69 for (
int iy = y_start; iy < y_end; iy++) {
70 for (
int ix = x_start; ix < x_end; ix++, index++) {
73 if (ix < 0 || iy < 0 || ix >= measurement_sub_image->getWidth() || iy >= measurement_sub_image->getHeight())
77 auto world_coord = measurement_coordinate_system->imageToWorld({
static_cast<double>(ix), static_cast<double>(iy)});
78 auto detection_coord = detection_coordinate_system->worldToImage(world_coord);
82 int detection_x =
static_cast<int>(detection_coord.m_x + 0.5);
83 int detection_y =
static_cast<int>(detection_coord.m_y + 0.5);
85 bool is_masked = measurement_var_image->getValue(ix, iy) > measurement_var_threshold;
86 bool is_detection_pixel = detection_thresh_image->getValue(detection_x, detection_y) > 0;
88 if (!is_masked && (!is_detection_pixel || pixel_coords.contains({detection_x, detection_y}))) {
89 vignet_vector[index] = measurement_sub_image->getValue(ix, iy);