Eigen::VectorXd PatternMatcherIsometric::GetIntensity()

in IsometricPatternMatcher/PatternMatcherIsometric.cpp [56:76]


Eigen::VectorXd PatternMatcherIsometric::GetIntensity(
    const Eigen::Matrix2Xd& detectedDots, const Image<uint8_t>& imageU8) const {
  Eigen::VectorXd intensity;
  intensity.resize(detectedDots.cols());
  for (int i = 0; i < detectedDots.cols(); ++i) {
    double max = 0;
    for (int r = -opts_.intensityWindowSize / 2;
         r <= opts_.intensityWindowSize / 2; ++r) {
      for (int c = -opts_.intensityWindowSize / 2;
           c <= opts_.intensityWindowSize / 2; ++c) {
        const auto* r0 = imageU8.RowPtr((int)detectedDots(1, i) + r) +
                         (int)detectedDots(0, i) + c;
        if (*r0 > max) {
          max = *r0;
        }
      }
    }
    intensity(i) = max;
  }
  return intensity;
}