Ejemplo n.º 1
0
void TpsRegistration::ComputeGradient(const double lambda,
    const vnl_matrix<double>& gradient, vnl_matrix<double>& grad_all) {
  grad_all.fill(0);
  if (lambda > 0) {
    grad_all.update(2 * lambda * kernel_ * param_tps_, d_ + 1);
  }
  grad_all += basis_.transpose() * gradient;
}
Ejemplo n.º 2
0
int select_points(const vnl_matrix<double>&pts,
    const std::vector<int>&index, vnl_matrix<double>& selected) {
  int n = index.size();
  int d = pts.cols();
  selected.set_size(n,d);
  for (int i = 0; i < n; ++i) {
    selected.update(pts.extract(1, d, index[i]), i);
  }
  return n;
}