From 4a53199e7ac09b92f2635efb7f57b85dabf26166 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Tue, 9 Oct 2012 19:28:15 +0400 Subject: [PATCH] Quiet logs in stitching module --- .../include/opencv2/stitching/detail/util.hpp | 2 +- modules/stitching/src/exposure_compensate.cpp | 2 ++ modules/stitching/src/motion_estimators.cpp | 6 ++++ modules/stitching/src/seam_finders.cpp | 42 ++++++++++++---------- modules/stitching/src/stitcher.cpp | 8 +++++ 5 files changed, 41 insertions(+), 19 deletions(-) diff --git a/modules/stitching/include/opencv2/stitching/detail/util.hpp b/modules/stitching/include/opencv2/stitching/detail/util.hpp index bce390b..15cecc7 100644 --- a/modules/stitching/include/opencv2/stitching/detail/util.hpp +++ b/modules/stitching/include/opencv2/stitching/detail/util.hpp @@ -46,7 +46,7 @@ #include #include "opencv2/core/core.hpp" -#define ENABLE_LOG 1 +#define ENABLE_LOG 0 // TODO remove LOG macros, add logging class #if ENABLE_LOG diff --git a/modules/stitching/src/exposure_compensate.cpp b/modules/stitching/src/exposure_compensate.cpp index 23bc161..39aa316 100644 --- a/modules/stitching/src/exposure_compensate.cpp +++ b/modules/stitching/src/exposure_compensate.cpp @@ -74,7 +74,9 @@ void GainCompensator::feed(const vector &corners, const vector &imag const vector > &masks) { LOGLN("Exposure compensation..."); +#if ENABLE_LOG int64 t = getTickCount(); +#endif CV_Assert(corners.size() == images.size() && images.size() == masks.size()); diff --git a/modules/stitching/src/motion_estimators.cpp b/modules/stitching/src/motion_estimators.cpp index bbbc969..9fb33b9 100644 --- a/modules/stitching/src/motion_estimators.cpp +++ b/modules/stitching/src/motion_estimators.cpp @@ -105,7 +105,9 @@ void HomographyBasedEstimator::estimate(const vector &features, c vector &cameras) { LOGLN("Estimating rotations..."); +#if ENABLE_LOG int64 t = getTickCount(); +#endif const int num_images = static_cast(features.size()); @@ -172,7 +174,9 @@ void BundleAdjusterBase::estimate(const vector &features, vector &cameras) { LOG_CHAT("Bundle adjustment"); +#if ENABLE_LOG int64 t = getTickCount(); +#endif num_images_ = static_cast(features.size()); features_ = &features[0]; @@ -582,7 +586,9 @@ void BundleAdjusterRay::calcJacobian(Mat &jac) void waveCorrect(vector &rmats, WaveCorrectKind kind) { LOGLN("Wave correcting..."); +#if ENABLE_LOG int64 t = getTickCount(); +#endif Mat moment = Mat::zeros(3, 3, CV_32F); for (size_t i = 0; i < rmats.size(); ++i) diff --git a/modules/stitching/src/seam_finders.cpp b/modules/stitching/src/seam_finders.cpp index 83f053c..44e3a91 100644 --- a/modules/stitching/src/seam_finders.cpp +++ b/modules/stitching/src/seam_finders.cpp @@ -52,10 +52,12 @@ void PairwiseSeamFinder::find(const vector &src, const vector &corne vector &masks) { LOGLN("Finding seams..."); - if (src.size() == 0) + if (src.size() == 0) return; +#if ENABLE_LOG int64 t = getTickCount(); +#endif images_ = src; sizes_.resize(src.size()); @@ -87,10 +89,12 @@ void VoronoiSeamFinder::find(const vector &sizes, const vector &cor vector &masks) { LOGLN("Finding seams..."); - if (sizes.size() == 0) + if (sizes.size() == 0) return; +#if ENABLE_LOG int64 t = getTickCount(); +#endif sizes_ = sizes; corners_ = corners; @@ -161,7 +165,9 @@ DpSeamFinder::DpSeamFinder(CostFunction costFunc) : costFunc_(costFunc) {} void DpSeamFinder::find(const vector &src, const vector &corners, vector &masks) { LOGLN("Finding seams..."); +#if ENABLE_LOG int64 t = getTickCount(); +#endif if (src.size() == 0) return; @@ -700,7 +706,7 @@ void DpSeamFinder::computeCosts( { CV_Assert(states_[comp] & INTERS); - // compute costs + // compute costs float (*diff)(const Mat&, int, int, const Mat&, int, int) = 0; if (image1.type() == CV_32FC3 && image2.type() == CV_32FC3) @@ -1055,10 +1061,10 @@ public: void findInPair(size_t first, size_t second, Rect roi); private: - void setGraphWeightsColor(const Mat &img1, const Mat &img2, + void setGraphWeightsColor(const Mat &img1, const Mat &img2, const Mat &mask1, const Mat &mask2, GCGraph &graph); - void setGraphWeightsColorGrad(const Mat &img1, const Mat &img2, const Mat &dx1, const Mat &dx2, - const Mat &dy1, const Mat &dy2, const Mat &mask1, const Mat &mask2, + void setGraphWeightsColorGrad(const Mat &img1, const Mat &img2, const Mat &dx1, const Mat &dx2, + const Mat &dy1, const Mat &dy2, const Mat &mask1, const Mat &mask2, GCGraph &graph); vector dx_, dy_; @@ -1148,8 +1154,8 @@ void GraphCutSeamFinder::Impl::setGraphWeightsColor(const Mat &img1, const Mat & void GraphCutSeamFinder::Impl::setGraphWeightsColorGrad( - const Mat &img1, const Mat &img2, const Mat &dx1, const Mat &dx2, - const Mat &dy1, const Mat &dy2, const Mat &mask1, const Mat &mask2, + const Mat &img1, const Mat &img2, const Mat &dx1, const Mat &dx2, + const Mat &dy1, const Mat &dy2, const Mat &mask1, const Mat &mask2, GCGraph &graph) { const Size img_size = img1.size(); @@ -1177,7 +1183,7 @@ void GraphCutSeamFinder::Impl::setGraphWeightsColorGrad( float grad = dx1.at(y, x) + dx1.at(y, x + 1) + dx2.at(y, x) + dx2.at(y, x + 1) + weight_eps; float weight = (normL2(img1.at(y, x), img2.at(y, x)) + - normL2(img1.at(y, x + 1), img2.at(y, x + 1))) / grad + + normL2(img1.at(y, x + 1), img2.at(y, x + 1))) / grad + weight_eps; if (!mask1.at(y, x) || !mask1.at(y, x + 1) || !mask2.at(y, x) || !mask2.at(y, x + 1)) @@ -1186,10 +1192,10 @@ void GraphCutSeamFinder::Impl::setGraphWeightsColorGrad( } if (y < img_size.height - 1) { - float grad = dy1.at(y, x) + dy1.at(y + 1, x) + + float grad = dy1.at(y, x) + dy1.at(y + 1, x) + dy2.at(y, x) + dy2.at(y + 1, x) + weight_eps; - float weight = (normL2(img1.at(y, x), img2.at(y, x)) + - normL2(img1.at(y + 1, x), img2.at(y + 1, x))) / grad + + float weight = (normL2(img1.at(y, x), img2.at(y, x)) + + normL2(img1.at(y + 1, x), img2.at(y + 1, x))) / grad + weight_eps; if (!mask1.at(y, x) || !mask1.at(y + 1, x) || !mask2.at(y, x) || !mask2.at(y + 1, x)) @@ -1271,7 +1277,7 @@ void GraphCutSeamFinder::Impl::findInPair(size_t first, size_t second, Rect roi) setGraphWeightsColor(subimg1, subimg2, submask1, submask2, graph); break; case GraphCutSeamFinder::COST_COLOR_GRAD: - setGraphWeightsColorGrad(subimg1, subimg2, subdx1, subdx2, subdy1, subdy2, + setGraphWeightsColorGrad(subimg1, subimg2, subdx1, subdx2, subdy1, subdy2, submask1, submask2, graph); break; default: @@ -1402,17 +1408,17 @@ void GraphCutSeamFinderGpu::findInPair(size_t first, size_t second, Rect roi) } } } - + Mat terminals, leftT, rightT, top, bottom; switch (cost_type_) { case GraphCutSeamFinder::COST_COLOR: - setGraphWeightsColor(subimg1, subimg2, submask1, submask2, + setGraphWeightsColor(subimg1, subimg2, submask1, submask2, terminals, leftT, rightT, top, bottom); break; case GraphCutSeamFinder::COST_COLOR_GRAD: - setGraphWeightsColorGrad(subimg1, subimg2, subdx1, subdx2, subdy1, subdy2, + setGraphWeightsColorGrad(subimg1, subimg2, subdx1, subdx2, subdy1, subdy2, submask1, submask2, terminals, leftT, rightT, top, bottom); break; default: @@ -1448,7 +1454,7 @@ void GraphCutSeamFinderGpu::findInPair(size_t first, size_t second, Rect roi) } -void GraphCutSeamFinderGpu::setGraphWeightsColor(const Mat &img1, const Mat &img2, const Mat &mask1, const Mat &mask2, +void GraphCutSeamFinderGpu::setGraphWeightsColor(const Mat &img1, const Mat &img2, const Mat &mask1, const Mat &mask2, Mat &terminals, Mat &leftT, Mat &rightT, Mat &top, Mat &bottom) { const Size img_size = img1.size(); @@ -1540,7 +1546,7 @@ void GraphCutSeamFinderGpu::setGraphWeightsColor(const Mat &img1, const Mat &img void GraphCutSeamFinderGpu::setGraphWeightsColorGrad( const Mat &img1, const Mat &img2, const Mat &dx1, const Mat &dx2, - const Mat &dy1, const Mat &dy2, const Mat &mask1, const Mat &mask2, + const Mat &dy1, const Mat &dy2, const Mat &mask1, const Mat &mask2, Mat &terminals, Mat &leftT, Mat &rightT, Mat &top, Mat &bottom) { const Size img_size = img1.size(); diff --git a/modules/stitching/src/stitcher.cpp b/modules/stitching/src/stitcher.cpp index f8b58d3..99bacf2 100644 --- a/modules/stitching/src/stitcher.cpp +++ b/modules/stitching/src/stitcher.cpp @@ -152,7 +152,9 @@ Stitcher::Status Stitcher::composePanorama(InputArray images, OutputArray pano) Mat &pano_ = pano.getMatRef(); +#if ENABLE_LOG int64 t = getTickCount(); +#endif vector corners(imgs_.size()); vector masks_warped(imgs_.size()); @@ -201,7 +203,9 @@ Stitcher::Status Stitcher::composePanorama(InputArray images, OutputArray pano) masks.clear(); LOGLN("Compositing..."); +#if ENABLE_LOG t = getTickCount(); +#endif Mat img_warped, img_warped_s; Mat dilated_mask, seam_mask, mask, mask_warped; @@ -349,7 +353,9 @@ Stitcher::Status Stitcher::matchImages() full_img_sizes_.resize(imgs_.size()); LOGLN("Finding features..."); +#if ENABLE_LOG int64 t = getTickCount(); +#endif for (size_t i = 0; i < imgs_.size(); ++i) { @@ -406,7 +412,9 @@ Stitcher::Status Stitcher::matchImages() LOGLN("Finding features, time: " << ((getTickCount() - t) / getTickFrequency()) << " sec"); LOG("Pairwise matching"); +#if ENABLE_LOG t = getTickCount(); +#endif (*features_matcher_)(features_, pairwise_matches_, matching_mask_); features_matcher_->collectGarbage(); LOGLN("Pairwise matching, time: " << ((getTickCount() - t) / getTickFrequency()) << " sec"); -- 2.7.4