|
|
|
@ -1176,6 +1176,9 @@ void cv::GaussianBlur( InputArray _src, OutputArray _dst, Size ksize, |
|
|
|
|
|
|
|
|
|
#if IPP_VERSION_X100 >= 801 |
|
|
|
|
if( type == CV_32FC1 && sigma1 == sigma2 && ksize.width == ksize.height && sigma1 != 0.0 ) |
|
|
|
|
{ |
|
|
|
|
IppiBorderType ippBorder = ippiGetBorderType(borderType); |
|
|
|
|
if ((ippBorderConst == ippBorder) || (ippBorderRepl == ippBorder)) |
|
|
|
|
{ |
|
|
|
|
Mat src = _src.getMat(), dst = _dst.getMat(); |
|
|
|
|
IppiSize roi = { src.cols, src.rows }; |
|
|
|
@ -1184,7 +1187,7 @@ void cv::GaussianBlur( InputArray _src, OutputArray _dst, Size ksize, |
|
|
|
|
{ |
|
|
|
|
IppFilterGaussianSpec *pSpec = (IppFilterGaussianSpec*)ippMalloc(specSize); |
|
|
|
|
Ipp8u *pBuffer = (Ipp8u*)ippMalloc(bufferSize); |
|
|
|
|
if (0 <= ippiFilterGaussianInit(roi, (Ipp32u)ksize.width, (Ipp32f)sigma1, (IppiBorderType)borderType, ipp32f, 1, pSpec, pBuffer)) |
|
|
|
|
if (0 <= ippiFilterGaussianInit(roi, (Ipp32u)ksize.width, (Ipp32f)sigma1, ippBorder, ipp32f, 1, pSpec, pBuffer)) |
|
|
|
|
{ |
|
|
|
|
IppStatus sts = ippiFilterGaussianBorder_32f_C1R( (const Ipp32f *)src.data, (int)src.step, |
|
|
|
|
(Ipp32f *)dst.data, (int)dst.step, |
|
|
|
@ -1197,6 +1200,7 @@ void cv::GaussianBlur( InputArray _src, OutputArray _dst, Size ksize, |
|
|
|
|
} |
|
|
|
|
setIppErrorStatus(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
Mat kx, ky; |
|
|
|
|