added cv::LUT to T-API

This commit is contained in:
Ilya Lavrenov
2013-11-28 00:57:36 +04:00
parent 41ae5d5f66
commit 4eba74ee19
6 changed files with 182 additions and 17 deletions

View File

@@ -47,6 +47,69 @@
namespace cvtest {
namespace ocl {
//////////////////////////////// LUT /////////////////////////////////////////////////
PARAM_TEST_CASE(Lut, MatDepth, MatDepth, Channels, bool, bool)
{
int src_depth, lut_depth;
int cn;
bool use_roi, same_cn;
TEST_DECLARE_INPUT_PARAMETER(src)
TEST_DECLARE_INPUT_PARAMETER(lut)
TEST_DECLARE_OUTPUT_PARAMETER(dst)
virtual void SetUp()
{
src_depth = GET_PARAM(0);
lut_depth = GET_PARAM(1);
cn = GET_PARAM(2);
same_cn = GET_PARAM(3);
use_roi = GET_PARAM(4);
}
void generateTestData()
{
const int src_type = CV_MAKE_TYPE(src_depth, cn);
const int lut_type = CV_MAKE_TYPE(lut_depth, same_cn ? cn : 1);
const int dst_type = CV_MAKE_TYPE(lut_depth, cn);
Size roiSize = randomSize(1, MAX_VALUE);
Border srcBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
randomSubMat(src, src_roi, roiSize, srcBorder, src_type, 0, 256);
Size lutRoiSize = Size(256, 1);
Border lutBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
randomSubMat(lut, lut_roi, lutRoiSize, lutBorder, lut_type, 5, 16);
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
randomSubMat(dst, dst_roi, roiSize, dstBorder, dst_type, 5, 16);
UMAT_UPLOAD_INPUT_PARAMETER(src)
UMAT_UPLOAD_INPUT_PARAMETER(lut)
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
}
void Near(double threshold = 0.)
{
EXPECT_MAT_NEAR(dst, udst, threshold);
EXPECT_MAT_NEAR(dst_roi, udst_roi, threshold);
}
};
OCL_TEST_P(Lut, Mat)
{
for (int j = 0; j < test_loop_times; j++)
{
generateTestData();
OCL_OFF(cv::LUT(src_roi, lut_roi, dst_roi));
OCL_ON(cv::LUT(usrc_roi, ulut_roi, udst_roi));
Near();
}
}
///////////////////////// ArithmTestBase ///////////////////////////
PARAM_TEST_CASE(ArithmTestBase, MatDepth, Channels, bool)
@@ -57,11 +120,11 @@ PARAM_TEST_CASE(ArithmTestBase, MatDepth, Channels, bool)
cv::Scalar val;
// declare Mat + UMat mirrors
TEST_DECLARE_INPUT_PARATEMER(src1)
TEST_DECLARE_INPUT_PARATEMER(src2)
TEST_DECLARE_INPUT_PARATEMER(mask)
TEST_DECLARE_OUTPUT_PARATEMER(dst1)
TEST_DECLARE_OUTPUT_PARATEMER(dst2)
TEST_DECLARE_INPUT_PARAMETER(src1)
TEST_DECLARE_INPUT_PARAMETER(src2)
TEST_DECLARE_INPUT_PARAMETER(mask)
TEST_DECLARE_OUTPUT_PARAMETER(dst1)
TEST_DECLARE_OUTPUT_PARAMETER(dst2)
virtual void SetUp()
{
@@ -220,6 +283,7 @@ OCL_TEST_P(Subtract, Scalar_Mask)
//////////////////////////////////////// Instantiation /////////////////////////////////////////
OCL_INSTANTIATE_TEST_CASE_P(Arithm, Lut, Combine(::testing::Values(CV_8U, CV_8S), OCL_ALL_DEPTHS, ::testing::Values(1, 2, 3, 4), Bool(), Bool()));
OCL_INSTANTIATE_TEST_CASE_P(Arithm, Add, Combine(OCL_ALL_DEPTHS, ::testing::Values(1, 2, 4), Bool()));
OCL_INSTANTIATE_TEST_CASE_P(Arithm, Subtract, Combine(OCL_ALL_DEPTHS, ::testing::Values(1, 2, 4), Bool()));