From: lluis Date: Mon, 9 Sep 2013 16:37:55 +0000 (+0200) Subject: Using cv::magnitude instead of custom loop and Mat instead of Mat... X-Git-Tag: accepted/tizen/6.0/unified/20201030.111113~3765^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad9462803892b4d883e95b9e7c151bf474bfb55b;p=platform%2Fupstream%2Fopencv.git Using cv::magnitude instead of custom loop and Mat instead of Mat to compute gradient magnitude channel. --- diff --git a/modules/objdetect/src/erfilter.cpp b/modules/objdetect/src/erfilter.cpp index 01b75ca..c231a51 100644 --- a/modules/objdetect/src/erfilter.cpp +++ b/modules/objdetect/src/erfilter.cpp @@ -1152,19 +1152,17 @@ void get_gradient_magnitude(Mat& _grey_img, Mat& _gradient_magnitude); void get_gradient_magnitude(Mat& _grey_img, Mat& _gradient_magnitude) { - Mat C = Mat_(_grey_img); + Mat C = Mat_(_grey_img); - Mat kernel = (Mat_(1,3) << -1,0,1); + Mat kernel = (Mat_(1,3) << -1,0,1); Mat grad_x; filter2D(C, grad_x, -1, kernel, Point(-1,-1), 0, BORDER_DEFAULT); - Mat kernel2 = (Mat_(3,1) << -1,0,1); + Mat kernel2 = (Mat_(3,1) << -1,0,1); Mat grad_y; filter2D(C, grad_y, -1, kernel2, Point(-1,-1), 0, BORDER_DEFAULT); - for(int i=0; i(i,j) = sqrt(pow(grad_x.at(i,j),2)+pow(grad_y.at(i,j),2)); + magnitude( grad_x, grad_y, _gradient_magnitude); } @@ -1216,7 +1214,7 @@ void computeNMChannels(InputArray _src, OutputArrayOfArrays _channels, int _mode Mat grey; cvtColor(src, grey, COLOR_RGB2GRAY); - Mat gradient_magnitude = Mat_(grey.size()); + Mat gradient_magnitude = Mat_(grey.size()); get_gradient_magnitude( grey, gradient_magnitude); gradient_magnitude.convertTo(gradient_magnitude, CV_8UC1); @@ -1248,7 +1246,7 @@ void computeNMChannels(InputArray _src, OutputArrayOfArrays _channels, int _mode Mat grey; cvtColor(src, grey, COLOR_RGB2GRAY); - Mat gradient_magnitude = Mat_(grey.size()); + Mat gradient_magnitude = Mat_(grey.size()); get_gradient_magnitude( grey, gradient_magnitude); gradient_magnitude.convertTo(gradient_magnitude, CV_8UC1);