added tests for pyrDown and pyrUp (gpu)

This commit is contained in:
Alexey Spizhevoy 2011-07-01 05:37:20 +00:00
parent 3e1b0186fe
commit 5f4ba8055f

View File

@ -2041,4 +2041,82 @@ INSTANTIATE_TEST_CASE_P(ImgProc, Blend, testing::Combine(
testing::Values(CV_8U, CV_32F),
testing::Range(1, 5)));
////////////////////////////////////////////////////////
// pyrDown
struct PyrDown : testing::TestWithParam<cv::gpu::DeviceInfo>
{
cv::gpu::DeviceInfo devInfo;
virtual void SetUp()
{
devInfo = GetParam();
cv::gpu::setDevice(devInfo.deviceID());
}
};
TEST_P(PyrDown, Accuracy)
{
PRINT_PARAM(devInfo);
cv::Mat src;
readImage("stereobm/aloe-L.png").convertTo(src, CV_16S);
cv::Mat dst_gold;
cv::pyrDown(src, dst_gold);
cv::gpu::GpuMat d_dst;
cv::gpu::pyrDown(cv::gpu::GpuMat(src), d_dst);
cv::Mat dst_mine = d_dst;
ASSERT_EQ(dst_gold.cols, dst_mine.cols);
ASSERT_EQ(dst_gold.rows, dst_mine.rows);
ASSERT_EQ(dst_gold.type(), dst_mine.type());
double err = cvtest::crossCorr(dst_gold, dst_mine) /
(cv::norm(dst_gold,cv::NORM_L2)*cv::norm(dst_mine,cv::NORM_L2));
ASSERT_NEAR(err, 1., 1e-2);
}
INSTANTIATE_TEST_CASE_P(ImgProc, PyrDown, testing::ValuesIn(devices()));
////////////////////////////////////////////////////////
// pyrUp
struct PyrUp: testing::TestWithParam<cv::gpu::DeviceInfo>
{
cv::gpu::DeviceInfo devInfo;
virtual void SetUp()
{
devInfo = GetParam();
cv::gpu::setDevice(devInfo.deviceID());
}
};
TEST_P(PyrUp, Accuracy)
{
PRINT_PARAM(devInfo);
cv::Mat src;
readImage("stereobm/aloe-L.png").convertTo(src, CV_16S);
cv::Mat dst_gold;
cv::pyrUp(src, dst_gold);
cv::gpu::GpuMat d_dst;
cv::gpu::pyrUp(cv::gpu::GpuMat(src), d_dst);
cv::Mat dst_mine = d_dst;
ASSERT_EQ(dst_gold.cols, dst_mine.cols);
ASSERT_EQ(dst_gold.rows, dst_mine.rows);
ASSERT_EQ(dst_gold.type(), dst_mine.type());
double err = cvtest::crossCorr(dst_gold, dst_mine) /
(cv::norm(dst_gold,cv::NORM_L2)*cv::norm(dst_mine,cv::NORM_L2));
ASSERT_NEAR(err, 1., 1e-2);
}
INSTANTIATE_TEST_CASE_P(ImgProc, PyrUp, testing::ValuesIn(devices()));
#endif // HAVE_CUDA