cv::Mat cv::getGaussianKernel( int n, double sigma, int ktype )
{
+ CV_Assert(n > 0);
const int SMALL_GAUSSIAN_SIZE = 7;
static const float small_gaussian_tab[][SMALL_GAUSSIAN_SIZE] =
{
}
}
+ CV_DbgAssert(fabs(sum) > 0);
sum = 1./sum;
for( i = 0; i < n; i++ )
{
virtual void operator() (const Range& range) const CV_OVERRIDE
{
AutoBuffer<FT> _buf(width*cn*kylen);
- FT* buf = _buf;
+ FT* buf = _buf.data();
AutoBuffer<FT*> _ptrs(kylen*2);
- FT** ptrs = _ptrs;
+ FT** ptrs = _ptrs.data();
if (kylen == 1)
{
CV_IPP_RUN_FAST(ipp_medianFilter(src0, dst, ksize));
-#ifdef HAVE_TEGRA_OPTIMIZATION
- if (tegra::useTegra() && tegra::medianBlur(src0, dst, ksize))
- return;
-#endif
-
bool useSortNet = ksize == 3 || (ksize == 5
#if !(CV_SIMD128)
&& ( src0.depth() > CV_8U || src0.channels() == 2 || src0.channels() > 4 )
wsum += w;
}
// overflow is not possible here => there is no need to use cv::saturate_cast
+ CV_DbgAssert(fabs(wsum) > 0);
dptr[j] = (uchar)cvRound(sum/wsum);
}
}
sum_b += b*w; sum_g += g*w; sum_r += r*w;
wsum += w;
}
+ CV_DbgAssert(fabs(wsum) > 0);
wsum = 1.f/wsum;
b0 = cvRound(sum_b*wsum);
g0 = cvRound(sum_g*wsum);
sum += val*w;
wsum += w;
}
+ CV_DbgAssert(fabs(wsum) > 0);
dptr[j] = (float)(sum/wsum);
}
}
sum_b += b*w; sum_g += g*w; sum_r += r*w;
wsum += w;
}
+ CV_DbgAssert(fabs(wsum) > 0);
wsum = 1.f/wsum;
b0 = sum_b*wsum;
g0 = sum_g*wsum;