call HAL for GaussianBlur is fixed

This commit is contained in:
elenagvo 2017-11-10 11:39:44 +03:00
parent a25c443d1f
commit ce65975625
2 changed files with 8 additions and 7 deletions

View File

@ -670,12 +670,12 @@ inline int hal_ni_threshold(const uchar* src_data, size_t src_step, uchar* dst_d
@param src_data,src_step Source image
@param dst_data,dst_step Destination image
@param width,height Source image dimensions
@param cn Number of channels
@param margins Margins for source image
@param ksize Size of kernel
@param anchor Anchor point
@param normalize If true then result is normalized
@param border_type Border type
@param cn Number of channels
*/
inline int hal_ni_boxFilter(int src_depth, int dst_depth, const uchar* src_data, size_t src_step, uchar* dst_data, size_t dst_step, int width, int height, int cn, CvRect margins, CvSize ksize, CvPoint anchor, bool normalize, int border_type) { return CV_HAL_ERROR_NOT_IMPLEMENTED; }
@ -685,15 +685,15 @@ inline int hal_ni_boxFilter(int src_depth, int dst_depth, const uchar* src_data,
/**
@brief Blurs an image using a Gaussian filter.
@param src_depth,dst_depth Depths of source and destination image
@param depth Depth of source and destination image
@param src_data,src_step Source image
@param dst_data,dst_step Destination image
@param width,height Source image dimensions
@param cn Number of channels
@param margins Margins for source image
@param ksize Size of kernel
@param sigmaX,sigmaY Gaussian kernel standard deviation.
@param border_type Border type
@param cn Number of channels
*/
inline int hal_ni_gaussianBlur(int depth, const uchar* src_data, size_t src_step, uchar* dst_data, size_t dst_step, int width, int height, int cn, CvRect margins, CvSize ksize, double sigmaX, double sigmaY, int border_type) { return CV_HAL_ERROR_NOT_IMPLEMENTED; }

View File

@ -2102,9 +2102,10 @@ void cv::GaussianBlur( InputArray _src, OutputArray _dst, Size ksize,
CV_OVX_RUN(true,
openvx_gaussianBlur(_src, _dst, ksize, sigma1, sigma2, borderType))
#ifdef HAVE_TEGRA_OPTIMIZATION
Mat src = _src.getMat();
Mat dst = _dst.getMat();
#ifdef HAVE_TEGRA_OPTIMIZATION
if(sigma1 == 0 && sigma2 == 0 && tegra::useTegra() && tegra::gaussian(src, dst, ksize, borderType))
return;
#endif
@ -2114,9 +2115,6 @@ void cv::GaussianBlur( InputArray _src, OutputArray _dst, Size ksize,
_src.rows() > ksize.height && _src.cols() > ksize.width);
(void)useOpenCL;
Mat src = _src.getMat();
Mat dst = _dst.getMat();
int sdepth = CV_MAT_DEPTH(type), cn = CV_MAT_CN(type);
Point ofs;
@ -2130,6 +2128,9 @@ void cv::GaussianBlur( InputArray _src, OutputArray _dst, Size ksize,
CALL_HAL(gaussianBlur, cv_hal_gaussianBlur, sdepth, src.ptr(), src.step, dst.ptr(), dst.step, src.cols, src.rows, cn,
margin, (CvSize)(ksize), sigma1, sigma2, borderType);
src.release();
dst.release();
CV_IPP_RUN(!useOpenCL, ipp_GaussianBlur( _src, _dst, ksize, sigma1, sigma2, borderType));
Mat kx, ky;