diff --git a/modules/gpu/src/cuda/resize.cu b/modules/gpu/src/cuda/resize.cu index d3083b3483..b84b29f92a 100644 --- a/modules/gpu/src/cuda/resize.cu +++ b/modules/gpu/src/cuda/resize.cu @@ -620,7 +620,6 @@ namespace cv { namespace gpu { namespace device { (void)interpolation; - //TODO: add assert to picture size int iscale_x = round(fx); int iscale_y = round(fy); @@ -641,8 +640,8 @@ namespace cv { namespace gpu { namespace device thred_lines = divUp(src.rows, threads); blocks = dst.cols * thred_lines; - printf("device code executed for Y coordinate with:\nwarps %d, threads %d, thred_lines %d, blocks %d\n", - warps, threads, thred_lines, blocks); + printf("device code executed for Y coordinate with:\nsize %d warps %d, threads %d, thred_lines %d, blocks %d\n", + dst.rows, warps, threads, thred_lines, blocks); resise_scan_fast_y<T, smem_type><<<blocks, threads, warps * 32 * sizeof(smem_type)>>> (buffer, dst, iscale_x, iscale_y, thred_lines); diff --git a/modules/gpu/src/resize.cpp b/modules/gpu/src/resize.cpp index 51d2e49b97..ff41818848 100644 --- a/modules/gpu/src/resize.cpp +++ b/modules/gpu/src/resize.cpp @@ -94,6 +94,7 @@ void cv::gpu::resize(const GpuMat& src, GpuMat& dst, GpuMat& buffer, Size dsize, CV_Assert(interpolation == INTER_AREA); CV_Assert( (fx < 1.0) && (fy < 1.0)); CV_Assert(!(dsize == Size()) || (fx > 0 && fy > 0)); + CV_Assert(src.cols >= 128 && src.rows >= 128); if (dsize == Size()) dsize = Size(saturate_cast<int>(src.cols * fx), saturate_cast<int>(src.rows * fy)); diff --git a/modules/gpu/test/test_resize.cpp b/modules/gpu/test/test_resize.cpp index e819d1cb79..5e03786828 100644 --- a/modules/gpu/test/test_resize.cpp +++ b/modules/gpu/test/test_resize.cpp @@ -201,13 +201,13 @@ TEST_P(ResizeArea, Accuracy) cv::Mat gpu; dst.download(gpu); - // std::cout << src + std::cout //<< src // << std::endl << std::endl // << gpu_buff // << std::endl << std::endl - // << gpu - // << std::endl << std::endl - // << dst_cpu<< std::endl; + << gpu + << std::endl << std::endl + << dst_cpu<< std::endl; EXPECT_MAT_NEAR(dst_cpu, dst, src.depth() == CV_32F ? 1e-2 : 1.0); @@ -215,9 +215,9 @@ TEST_P(ResizeArea, Accuracy) INSTANTIATE_TEST_CASE_P(GPU_ImgProc, ResizeArea, testing::Combine( ALL_DEVICES, - testing::Values(cv::Size(512, 256)),//DIFFERENT_SIZES, + testing::Values(cv::Size(640, 10 * 128)),//DIFFERENT_SIZES, testing::Values(MatType(CV_8UC1)/*MatType(CV_8UC3), MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4), MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)*/), - testing::Values(0.5), + testing::Values(0.1), testing::Values(Interpolation(cv::INTER_AREA)), WHOLE_SUBMAT));