mirror of
https://github.com/opencv/opencv.git
synced 2025-06-15 22:20:58 +08:00
GAPI Fluid: The run_sepfilter() has logic error into handler for 5x5 and larger kernels
This commit is contained in:
parent
5dd3e6052e
commit
363976694e
@ -58,7 +58,7 @@ INSTANTIATE_TEST_CASE_P(BlurPerfTestFluid, BlurPerfTest,
|
|||||||
INSTANTIATE_TEST_CASE_P(GaussianBlurPerfTestFluid, GaussianBlurPerfTest,
|
INSTANTIATE_TEST_CASE_P(GaussianBlurPerfTestFluid, GaussianBlurPerfTest,
|
||||||
Combine(Values(ToleranceFilter(1e-3f, 0.01).to_compare_f()),
|
Combine(Values(ToleranceFilter(1e-3f, 0.01).to_compare_f()),
|
||||||
Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
|
Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
|
||||||
Values(3), // TODO: add size=5, when kernel is ready
|
Values(3, 5),
|
||||||
Values(szVGA, sz720p, sz1080p),
|
Values(szVGA, sz720p, sz1080p),
|
||||||
Values(cv::compile_args(IMGPROC_FLUID))));
|
Values(cv::compile_args(IMGPROC_FLUID))));
|
||||||
|
|
||||||
|
@ -628,7 +628,7 @@ static void run_sepfilter(Buffer& dst, const View& src,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int length = chan * width;
|
int length = chan * width;
|
||||||
int xshift = chan * xborder;
|
int xshift = chan;
|
||||||
|
|
||||||
// horizontal pass
|
// horizontal pass
|
||||||
|
|
||||||
@ -788,8 +788,6 @@ GAPI_FLUID_KERNEL(GFluidGaussBlur, cv::gapi::imgproc::GGaussBlur, true)
|
|||||||
Buffer& dst,
|
Buffer& dst,
|
||||||
Buffer& scratch)
|
Buffer& scratch)
|
||||||
{
|
{
|
||||||
GAPI_Assert(ksize.height == 3);
|
|
||||||
|
|
||||||
int kxsize = ksize.width;
|
int kxsize = ksize.width;
|
||||||
int kysize = ksize.height;
|
int kysize = ksize.height;
|
||||||
|
|
||||||
@ -800,10 +798,16 @@ GAPI_FLUID_KERNEL(GFluidGaussBlur, cv::gapi::imgproc::GGaussBlur, true)
|
|||||||
int chan = src.meta().chan;
|
int chan = src.meta().chan;
|
||||||
int length = width * 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[0] = ky + kysize;
|
||||||
buf[1] = buf[0] + length;
|
for (int i = 1; i < ksize.height; ++i)
|
||||||
buf[2] = buf[1] + length;
|
{
|
||||||
|
buf[i] = buf[i - 1] + length;
|
||||||
|
}
|
||||||
|
|
||||||
auto anchor = cv::Point(-1, -1);
|
auto anchor = cv::Point(-1, -1);
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ INSTANTIATE_TEST_CASE_P(gaussBlurTestFluid, GaussianBlurTest,
|
|||||||
Values(-1),
|
Values(-1),
|
||||||
Values(IMGPROC_FLUID),
|
Values(IMGPROC_FLUID),
|
||||||
Values(ToleranceFilter(1e-3f, 0.01).to_compare_obj()),
|
Values(ToleranceFilter(1e-3f, 0.01).to_compare_obj()),
|
||||||
Values(3))); // add kernel size=5 when implementation is ready
|
Values(3, 5)));
|
||||||
|
|
||||||
INSTANTIATE_TEST_CASE_P(medianBlurTestFluid, MedianBlurTest,
|
INSTANTIATE_TEST_CASE_P(medianBlurTestFluid, MedianBlurTest,
|
||||||
Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
|
Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
|
||||||
|
Loading…
Reference in New Issue
Block a user