diff --git a/image_analysis/bragg_integration/BraggIntegrate2D.cpp b/image_analysis/bragg_integration/BraggIntegrate2D.cpp index 22339929..d8ea5dce 100644 --- a/image_analysis/bragg_integration/BraggIntegrate2D.cpp +++ b/image_analysis/bragg_integration/BraggIntegrate2D.cpp @@ -88,7 +88,10 @@ void IntegrateReflection(Reflection &r, const T *image, const std::vector= r2_sq && d2 < r3_sq) { - if (px == special || px == saturation) continue; + if (px == special || px == special + 1 || px == saturation || px == saturation - 1) continue; bkg_sum += static_cast(px); ++n_bkg; } @@ -124,7 +124,7 @@ std::vector ProfileIntegrateInternal(const DiffractionExperiment &ex const int64_t x = rh.cx + dx, y = rh.cy + dy; if (x < 0 || y < 0 || x >= static_cast(xpixel) || y >= static_cast(ypixel)) continue; const auto px = ptr[y * xpixel + x]; - if (px == special || px == saturation) continue; + if (px == special || px == special + 1 || px == saturation || px == saturation - 1) continue; const double v = (static_cast(px) - rh.bkg) / rh.I; shell_grid[rh.shell][idx(dx, dy)] += v; global_grid[idx(dx, dy)] += v; @@ -191,7 +191,7 @@ std::vector ProfileIntegrateInternal(const DiffractionExperiment &ex const int64_t x = rh.cx + dx, y = rh.cy + dy; if (x < 0 || y < 0 || x >= static_cast(xpixel) || y >= static_cast(ypixel)) continue; const auto px = ptr[y * xpixel + x]; - if (px == special || px == saturation) continue; + if (px == special || px == special + 1 || px == saturation || px == saturation - 1) continue; const double v = B + std::max(0.0, I) * Pp; num += Pp * (static_cast(px) - rh.bkg) / v; den += Pp * Pp / v;