42 auto measurement_var_threshold = measurement_frame_info.getVarianceThreshold();
44 const auto measurement_sub_image = measurement_frame_images.getLockedImage(
LayerSubtractedImage);
45 const auto measurement_var_image = measurement_frame_images.getLockedImage(
LayerVarianceMap);
60 const int x_pix =
static_cast<int>(centroid.getCentroidX() + 0.5);
61 const int y_pix =
static_cast<int>(centroid.getCentroidY() + 0.5);
72 for (
int iy = y_start; iy < y_end; iy++) {
73 for (
int ix = x_start; ix < x_end; ix++, index++) {
76 if (ix < 0 || iy < 0 || ix >= measurement_sub_image->getWidth() || iy >= measurement_sub_image->getHeight())
80 auto world_coord = measurement_coordinate_system->imageToWorld({
static_cast<double>(ix), static_cast<double>(iy)});
81 auto detection_coord = detection_coordinate_system->worldToImage(world_coord);
85 int detection_x =
static_cast<int>(detection_coord.m_x + 0.5);
86 int detection_y =
static_cast<int>(detection_coord.m_y + 0.5);
88 bool is_masked = measurement_var_image->getValue(ix, iy) > measurement_var_threshold;
89 bool is_detection_pixel = detection_thresh_image->getValue(detection_x, detection_y) > 0;
91 if (!is_masked && (!is_detection_pixel || pixel_coords.contains({detection_x, detection_y}))) {
92 vignet_vector[index] = measurement_sub_image->getValue(ix, iy);