27 namespace SourceXtractor {
36 auto min_pixel = aperture->getMinPixel(centroid_x, centroid_y);
37 auto max_pixel = aperture->getMaxPixel(centroid_x, centroid_y);
42 if (max_pixel.m_x < 0 || max_pixel.m_y < 0 || min_pixel.m_x >= img->getWidth() ||
43 min_pixel.m_y >= img->getHeight()) {
49 for (
int pixel_y = min_pixel.m_y; pixel_y <= max_pixel.m_y; pixel_y++) {
50 for (
int pixel_x = min_pixel.m_x; pixel_x <= max_pixel.m_x; pixel_x++) {
56 auto area = aperture->getArea(centroid_x, centroid_y, pixel_x, pixel_y);
62 if (pixel_x >= 0 && pixel_y >= 0 && pixel_x < img->getWidth() && pixel_y < img->getHeight()) {
64 variance_tmp = variance_map ? variance_map->getValue(pixel_x, pixel_y) : 1;
65 if (variance_tmp > variance_threshold) {
72 auto mirror_x = 2 * centroid_x - pixel_x + 0.49999;
73 auto mirror_y = 2 * centroid_y - pixel_y + 0.49999;
74 if (mirror_x >= 0 && mirror_y >= 0 && mirror_x < img->getWidth() && mirror_y < img->getHeight()) {
75 variance_tmp = variance_map ? variance_map->getValue(mirror_x, mirror_y) : 1;
76 if (variance_tmp < variance_threshold) {
78 pixel_value = img->getValue(mirror_x, mirror_y);
79 pixel_variance = variance_tmp;
84 pixel_value = img->getValue(pixel_x, pixel_y);
85 pixel_variance = variance_tmp;
88 measurement.
m_flux += pixel_value * area;
89 measurement.
m_variance += pixel_variance * area;