From b74e9c101a361f7f78004b4d98074c368fce691d Mon Sep 17 00:00:00 2001 From: Alexey Spizhevoy Date: Mon, 24 Oct 2011 11:52:36 +0000 Subject: [PATCH] Fixed bug in the stitching module (some images appeared at result pano center) --- modules/gpu/src/cuda/imgproc.cu | 8 ++++---- .../include/opencv2/stitching/detail/warpers_inl.hpp | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/gpu/src/cuda/imgproc.cu b/modules/gpu/src/cuda/imgproc.cu index 8149945647..7b83362e1f 100644 --- a/modules/gpu/src/cuda/imgproc.cu +++ b/modules/gpu/src/cuda/imgproc.cu @@ -839,8 +839,8 @@ namespace cv { namespace gpu { namespace imgproc y = ck_rinv[3] * x_ + ck_rinv[4] * y_ + ck_rinv[5] * z_; z = ck_rinv[6] * x_ + ck_rinv[7] * y_ + ck_rinv[8] * z_; - x /= z; - y /= z; + if (z > 0) { x /= z; y /= z; } + else x = y = -1; } }; @@ -865,8 +865,8 @@ namespace cv { namespace gpu { namespace imgproc y = ck_rinv[3] * x_ + ck_rinv[4] * y_ + ck_rinv[5] * z_; z = ck_rinv[6] * x_ + ck_rinv[7] * y_ + ck_rinv[8] * z_; - x /= z; - y /= z; + if (z > 0) { x /= z; y /= z; } + else x = y = -1; } }; diff --git a/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp b/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp index da20b90a23..e925c63107 100644 --- a/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp +++ b/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp @@ -262,8 +262,8 @@ void SphericalProjector::mapBackward(float u, float v, float &x, float &y) y = k_rinv[3] * x_ + k_rinv[4] * y_ + k_rinv[5] * z_; z = k_rinv[6] * x_ + k_rinv[7] * y_ + k_rinv[8] * z_; - x /= z; - y /= z; + if (z > 0) { x /= z; y /= z; } + else x = y = -1; } @@ -294,8 +294,8 @@ void CylindricalProjector::mapBackward(float u, float v, float &x, float &y) y = k_rinv[3] * x_ + k_rinv[4] * y_ + k_rinv[5] * z_; z = k_rinv[6] * x_ + k_rinv[7] * y_ + k_rinv[8] * z_; - x /= z; - y /= z; + if (z > 0) { x /= z; y /= z; } + else x = y = -1; } } // namespace detail