void blur()

in IsometricPatternMatcher/DotExtractor.h [63:98]


  void blur(surreal_opensource::ManagedImage<Tout>& out,
            const surreal_opensource::ManagedImage<Tin>& in) {
    CHECK(out.w == in.w && out.h == in.h);

    surreal_opensource::ManagedImage<Tout> med(in.w, in.h);
    for (int y = 0; y < in.h; y++) {
      for (int x = 0; x < in.w; ++x) {
        float blurSum = kernel_[0] * in(x, y);
        for (int r = 1; r < this->blurKernelRadius_; ++r) {
          float w = kernel_[r];
          if (x - r >= 0) {
            blurSum += w * in(x - r, y);
          }
          if (x + r < in.w) {
            blurSum += w * in(x + r, y);
          }
        }
        med(x, y) = blurSum;
      }
    }
    for (int x = 0; x < in.w; x++) {
      for (int y = 0; y < in.h; ++y) {
        float blurSum = kernel_[0] * med(x, y);
        for (int r = 1; r < blurKernelRadius_; ++r) {
          const float w = kernel_[r];
          if (y - r >= 0) {
            blurSum += w * med(x, y - r);
          }
          if (y + r < in.h) {
            blurSum += w * med(x, y + r);
          }
        }
        out(x, y) = blurSum;
      }
    }
  }