44 if (variance_map->getValue(
x,
y) > variance_threshold) {
46 auto mirror_x = 2 * centroid_x -
x + 0.49999;
47 auto mirror_y = 2 * centroid_y -
y + 0.49999;
48 if (mirror_x >= 0 && mirror_y >= 0 && mirror_x < image->getWidth() && mirror_y < image->getHeight()) {
49 if (variance_map->getValue(mirror_x, mirror_y) < variance_threshold) {
51 pixel_value = image->getValue(mirror_x, mirror_y);
58 pixel_value = image->getValue(
x,
y);
64 : m_instance{instance}, m_use_symmetry{use_symmetry} {}
70 auto variance_threshold = measurement_frame_info.getVarianceThreshold();
73 const auto variance_map = measurement_frame_images.getLockedImage(
LayerVarianceMap);
89 Mat22 radius_22{detection_rlim, 0, 0, detection_rlim};
90 radius_22 = radius_22 * jacobian;
91 double r1 = radius_22[0] * radius_22[0] + radius_22[1] * radius_22[1];
92 double r2 = radius_22[2] * radius_22[2] + radius_22[3] * radius_22[3];
107 auto min_coord = apertures.
back().getMinPixel(centroid_x, centroid_y);
108 auto max_coord = apertures.
back().getMaxPixel(centroid_x, centroid_y);
111 for (
auto y = min_coord.m_y;
y <= max_coord.m_y; ++
y) {
112 for (
auto x = min_coord.m_x;
x <= max_coord.m_x; ++
x) {
113 if (!image->isInside(
x,
y)) {
118 variance_map, variance_threshold,
122 auto dx =
x - centroid_x;
123 auto dy =
y - centroid_y;
130 idx =
static_cast<size_t>((r - 1.42 / 2.) / step_size);
132 size_t outer_idx =
static_cast<size_t>(
std::ceil((r + 1.42 / 2.) / step_size));
136 for (; idx <= outer_idx; ++idx) {
137 auto& aperture = apertures[idx];
138 auto area = aperture.getArea(centroid_x, centroid_y,
x,
y);
140 fluxes[idx] += area * pixel_value - inner;
141 inner = area * pixel_value;
147 for (
size_t i = 1; i < fluxes.
size(); ++i) {
148 fluxes[i] += fluxes[i - 1];
std::shared_ptr< EngineParameter > dx
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
std::shared_ptr< EngineParameter > dy
T emplace_back(T... args)