1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-31 00:03:03 +04:00

GAPI Fluid: The run_sepfilter() has logic error into handler for 5x5 and larger kernels

This commit is contained in:
Anna Khakimova
2019-11-08 16:45:10 +03:00
parent 5dd3e6052e
commit 363976694e
3 changed files with 12 additions and 8 deletions
@@ -628,7 +628,7 @@ static void run_sepfilter(Buffer& dst, const View& src,
else
{
int length = chan * width;
int xshift = chan * xborder;
int xshift = chan;
// horizontal pass
@@ -788,8 +788,6 @@ GAPI_FLUID_KERNEL(GFluidGaussBlur, cv::gapi::imgproc::GGaussBlur, true)
Buffer& dst,
Buffer& scratch)
{
GAPI_Assert(ksize.height == 3);
int kxsize = ksize.width;
int kysize = ksize.height;
@@ -800,10 +798,16 @@ GAPI_FLUID_KERNEL(GFluidGaussBlur, cv::gapi::imgproc::GGaussBlur, true)
int chan = src.meta().chan;
int length = width * chan;
float *buf[3];
constexpr int buffSize = 5;
GAPI_Assert(ksize.height <= buffSize);
float *buf[buffSize]{};
buf[0] = ky + kysize;
buf[1] = buf[0] + length;
buf[2] = buf[1] + length;
for (int i = 1; i < ksize.height; ++i)
{
buf[i] = buf[i - 1] + length;
}
auto anchor = cv::Point(-1, -1);