38 : m_instance{instance}, m_use_symmetry{use_symmetry} {}
43 auto image = measurement_frame->getSubtractedImage();
44 auto variance_map = measurement_frame->getVarianceMap();
45 auto variance_threshold = measurement_frame->getVarianceThreshold();
60 Mat22 radius_22{detection_rlim, 0, 0, detection_rlim};
61 radius_22 = radius_22 * jacobian;
62 double r1 = radius_22[0] * radius_22[0] + radius_22[1] * radius_22[1];
63 double r2 = radius_22[2] * radius_22[2] + radius_22[3] * radius_22[3];
78 auto min_coord = apertures.
back().getMinPixel(centroid_x, centroid_y);
79 auto max_coord = apertures.
back().getMaxPixel(centroid_x, centroid_y);
83 for (
auto y = min_coord.m_y;
y <= max_coord.m_y; ++
y) {
84 for (
auto x = min_coord.m_x;
x <= max_coord.m_x; ++
x) {
85 if (
x >= 0 && x < image->getWidth() &&
y >= 0 && y < image->getHeight()) {
90 if (variance_tmp > variance_threshold) {
92 auto mirror_x = 2 * centroid_x -
x + 0.49999;
93 auto mirror_y = 2 * centroid_y -
y + 0.49999;
94 if (mirror_x >= 0 && mirror_y >= 0 && mirror_x < image->getWidth() && mirror_y < image->getHeight()) {
95 variance_tmp = variance_map ? variance_map->getValue(mirror_x, mirror_y) : 1;
96 if (variance_tmp < variance_threshold) {
98 pixel_value = image->getValue(mirror_x, mirror_y);
105 pixel_value = image->getValue(
x,
y);
109 auto dx =
x - centroid_x;
110 auto dy =
y - centroid_y;
116 idx =
static_cast<size_t>((r - 1.42 / 2.) / step_size);
118 size_t outer_idx =
static_cast<size_t>(
std::ceil((r + 1.42 / 2.) / step_size));
121 for (; idx <= outer_idx; ++idx) {
122 if (idx < apertures.
size()) {
123 auto& aperture = apertures[idx];
124 auto area = aperture.getArea(centroid_x, centroid_y,
x,
y);
126 fluxes[idx] += area * pixel_value - inner;
127 inner = area * pixel_value;
135 for (
size_t i = 1; i < fluxes.
size(); ++i) {
136 fluxes[i] += fluxes[i - 1];
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
std::shared_ptr< EngineParameter > dx
std::shared_ptr< EngineParameter > dy
T emplace_back(T... args)