//
//M*/
-#include "test_precomp.hpp"
+#include "../test_precomp.hpp"
#include "opencv2/ts/ocl_test.hpp"
#ifdef HAVE_OPENCL
/////////////////////////////////////////////////////////////////////////////////////////////////
//// resize
-PARAM_TEST_CASE(Resize, MatType, double, double, Interpolation, bool)
+PARAM_TEST_CASE(Resize, MatType, double, double, Interpolation, bool, int)
{
int type, interpolation;
+ int widthMultiple;
double fx, fy;
bool useRoi;
fy = GET_PARAM(2);
interpolation = GET_PARAM(3);
useRoi = GET_PARAM(4);
+ widthMultiple = GET_PARAM(5);
}
void random_roi()
{
CV_Assert(fx > 0 && fy > 0);
- Size srcRoiSize = randomSize(1, MAX_VALUE), dstRoiSize;
+ Size srcRoiSize = randomSize(10, MAX_VALUE), dstRoiSize;
+ // Make sure the width is a multiple of the requested value, and no more
+ srcRoiSize.width += widthMultiple - 1 - (srcRoiSize.width - 1) % widthMultiple;
dstRoiSize.width = cvRound(srcRoiSize.width * fx);
dstRoiSize.height = cvRound(srcRoiSize.height * fy);
{
for (int j = 0; j < test_loop_times; j++)
{
+ int depth = CV_MAT_DEPTH(type);
+ double eps = depth <= CV_32S ? 1 : 5e-2;
+
random_roi();
OCL_OFF(cv::resize(src_roi, dst_roi, Size(), fx, fy, interpolation));
OCL_ON(cv::resize(usrc_roi, udst_roi, Size(), fx, fy, interpolation));
- Near(1.0);
+ Near(eps);
}
}
Border map1Border = randomBorder(0, useRoi ? MAX_VALUE : 0);
randomSubMat(map1, map1_roi, dstROISize, map1Border, map1Type, -mapMaxValue, mapMaxValue);
- Border map2Border = randomBorder(0, useRoi ? MAX_VALUE : 0);
+ Border map2Border = randomBorder(0, useRoi ? MAX_VALUE + 1 : 0);
if (map2Type != noType)
{
int mapMinValue = -mapMaxValue;
OCL_INSTANTIATE_TEST_CASE_P(ImgprocWarp, Resize, Combine(
Values(CV_8UC1, CV_8UC4, CV_16UC2, CV_32FC1, CV_32FC4),
- Values(0.5, 1.5, 2.0),
- Values(0.5, 1.5, 2.0),
+ Values(0.5, 1.5, 2.0, 0.2),
+ Values(0.5, 1.5, 2.0, 0.2),
Values((Interpolation)INTER_NEAREST, (Interpolation)INTER_LINEAR),
- Bool()));
+ Bool(),
+ Values(1, 16)));
OCL_INSTANTIATE_TEST_CASE_P(ImgprocWarpResizeArea, Resize, Combine(
Values((MatType)CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4),
Values(0.7, 0.4, 0.5),
Values(0.3, 0.6, 0.5),
Values((Interpolation)INTER_AREA),
- Bool()));
+ Bool(),
+ Values(1, 16)));
OCL_INSTANTIATE_TEST_CASE_P(ImgprocWarp, Remap_INTER_LINEAR, Combine(
Values(CV_8U, CV_16U, CV_32F),