From ec351f478f2523cd0cf0b927bd4fc0630efb0812 Mon Sep 17 00:00:00 2001 From: Christian Forster Date: Fri, 27 Jun 2014 14:57:03 +0200 Subject: [PATCH] moved proj. jacobian out of loop. --- svo/src/sparse_img_align.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/svo/src/sparse_img_align.cpp b/svo/src/sparse_img_align.cpp index 78323e7..ce1570b 100644 --- a/svo/src/sparse_img_align.cpp +++ b/svo/src/sparse_img_align.cpp @@ -107,6 +107,10 @@ void SparseImgAlign::precomputeReferencePatches() const double depth(((*it)->point->pos_ - ref_pos).norm()); const Vector3d xyz_ref((*it)->f*depth); + // evaluate projection jacobian + Matrix frame_jac; + Frame::jacobian_xyz2uv(xyz_ref, frame_jac); + // compute bilateral interpolation weights for reference image const float subpix_u_ref = u_ref-u_ref_i; const float subpix_v_ref = v_ref-v_ref_i; @@ -131,10 +135,6 @@ void SparseImgAlign::precomputeReferencePatches() float dy = 0.5f * ((w_ref_tl*ref_img_ptr[stride] + w_ref_tr*ref_img_ptr[1+stride] + w_ref_bl*ref_img_ptr[stride*2] + w_ref_br*ref_img_ptr[stride*2+1]) -(w_ref_tl*ref_img_ptr[-stride] + w_ref_tr*ref_img_ptr[1-stride] + w_ref_bl*ref_img_ptr[0] + w_ref_br*ref_img_ptr[1])); - // evaluate jacobian and cache - Matrix frame_jac; - Frame::jacobian_xyz2uv(xyz_ref, frame_jac); - // cache the jacobian jacobian_cache_.col(feature_counter*patch_area_ + pixel_counter) = (dx*frame_jac.row(0) + dy*frame_jac.row(1))*(focal_length / (1<