added cv::[extract|insert]Channel to T-API

This commit is contained in:
Ilya Lavrenov
2014-01-17 23:31:03 +04:00
parent f60f8a7346
commit 5d18cf9989
4 changed files with 169 additions and 7 deletions

View File

@@ -353,11 +353,105 @@ OCL_TEST_P(MixChannels, Accuracy)
}
}
//////////////////////////////////////// InsertChannel ///////////////////////////////////////////////
PARAM_TEST_CASE(InsertChannel, MatDepth, Channels, bool)
{
int depth, cn, coi;
bool use_roi;
TEST_DECLARE_INPUT_PARAMETER(src)
TEST_DECLARE_OUTPUT_PARAMETER(dst)
virtual void SetUp()
{
depth = GET_PARAM(0);
cn = GET_PARAM(1);
use_roi = GET_PARAM(2);
}
void generateTestData()
{
Size roiSize = randomSize(1, MAX_VALUE);
coi = randomInt(0, cn);
Border srcBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
randomSubMat(src, src_roi, roiSize, srcBorder, depth, 2, 11);
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
randomSubMat(dst, dst_roi, roiSize, dstBorder, CV_MAKE_TYPE(depth, cn), 5, 16);
UMAT_UPLOAD_INPUT_PARAMETER(src)
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
}
};
OCL_TEST_P(InsertChannel, Accuracy)
{
for(int j = 0; j < test_loop_times; j++)
{
generateTestData();
OCL_OFF(cv::insertChannel(src_roi, dst_roi, coi));
OCL_ON(cv::insertChannel(usrc_roi, udst_roi, coi));
OCL_EXPECT_MATS_NEAR(dst, 0);
}
}
//////////////////////////////////////// ExtractChannel ///////////////////////////////////////////////
PARAM_TEST_CASE(ExtractChannel, MatDepth, Channels, bool)
{
int depth, cn, coi;
bool use_roi;
TEST_DECLARE_INPUT_PARAMETER(src)
TEST_DECLARE_OUTPUT_PARAMETER(dst)
virtual void SetUp()
{
depth = GET_PARAM(0);
cn = GET_PARAM(1);
use_roi = GET_PARAM(2);
}
void generateTestData()
{
Size roiSize = randomSize(1, MAX_VALUE);
coi = randomInt(0, cn);
Border srcBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
randomSubMat(src, src_roi, roiSize, srcBorder, CV_MAKE_TYPE(depth, cn), 2, 11);
Border dstBorder = randomBorder(0, use_roi ? MAX_VALUE : 0);
randomSubMat(dst, dst_roi, roiSize, dstBorder, depth, 5, 16);
UMAT_UPLOAD_INPUT_PARAMETER(src)
UMAT_UPLOAD_OUTPUT_PARAMETER(dst)
}
};
OCL_TEST_P(ExtractChannel, Accuracy)
{
for(int j = 0; j < test_loop_times; j++)
{
generateTestData();
OCL_OFF(cv::extractChannel(src_roi, dst_roi, coi));
OCL_ON(cv::extractChannel(usrc_roi, udst_roi, coi));
OCL_EXPECT_MATS_NEAR(dst, 0);
}
}
//////////////////////////////////////// Instantiation ///////////////////////////////////////////////
OCL_INSTANTIATE_TEST_CASE_P(Channels, Merge, Combine(OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool()));
OCL_INSTANTIATE_TEST_CASE_P(Channels, Split, Combine(OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool()));
OCL_INSTANTIATE_TEST_CASE_P(Channels, MixChannels, Combine(OCL_ALL_DEPTHS, Bool()));
OCL_INSTANTIATE_TEST_CASE_P(Channels, InsertChannel, Combine(OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool()));
OCL_INSTANTIATE_TEST_CASE_P(Channels, ExtractChannel, Combine(OCL_ALL_DEPTHS, OCL_ALL_CHANNELS, Bool()));
} } // namespace cvtest::ocl