37 auto mirror_x = 2 * centroid_x - pixel_x + 0.49999;
38 auto mirror_y = 2 * centroid_y - pixel_y + 0.49999;
39 if (img->isInside(mirror_x, mirror_y)) {
40 auto variance_tmp = variance_map->getValue(mirror_x, mirror_y);
41 if (variance_tmp < variance_threshold) {
43 return std::make_pair(img->getValue(mirror_x, mirror_y), variance_tmp);
53 auto min_pixel = aperture->getMinPixel(centroid_x, centroid_y);
54 auto max_pixel = aperture->getMaxPixel(centroid_x, centroid_y);
59 if (max_pixel.m_x < 0 || max_pixel.m_y < 0 || min_pixel.m_x >= img->getWidth() ||
60 min_pixel.m_y >= img->getHeight()) {
66 for (
int pixel_y = min_pixel.m_y; pixel_y <= max_pixel.m_y; pixel_y++) {
67 for (
int pixel_x = min_pixel.m_x; pixel_x <= max_pixel.m_x; pixel_x++) {
72 auto area = aperture->getArea(centroid_x, centroid_y, pixel_x, pixel_y);
80 if (img->isInside(pixel_x, pixel_y)) {
82 SeFloat variance_tmp = variance_map->getValue(pixel_x, pixel_y);
83 if (variance_tmp > variance_threshold) {
87 centroid_x, centroid_y, pixel_x, pixel_y, img, variance_map, variance_threshold);
91 pixel_value = img->getValue(pixel_x, pixel_y);
92 pixel_variance = variance_tmp;
95 measurement.
m_flux += pixel_value * area;
96 measurement.
m_variance += pixel_variance * area;