Merge remote-tracking branch 'origin/2.4' into merge-2.4
Conflicts: modules/contrib/src/retina.cpp modules/gpu/perf/perf_video.cpp modules/gpuoptflow/src/tvl1flow.cpp modules/ocl/include/opencv2/ocl/ocl.hpp modules/ocl/perf/perf_calib3d.cpp modules/ocl/perf/perf_color.cpp modules/ocl/perf/perf_match_template.cpp modules/ocl/src/precomp.hpp samples/gpu/stereo_multi.cpp
This commit is contained in:
@@ -76,7 +76,7 @@ PERF_TEST_P(LUTFixture, LUT,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclLut(lut), oclDst(srcSize, dstType);
|
||||
|
||||
TEST_CYCLE() cv::ocl::LUT(oclSrc, oclLut, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::LUT(oclSrc, oclLut, oclDst);
|
||||
oclDst.download(dst);
|
||||
|
||||
SANITY_CHECK(dst);
|
||||
@@ -111,7 +111,7 @@ PERF_TEST_P(ExpFixture, Exp, OCL_TYPICAL_MAT_SIZES)
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, src.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::exp(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::exp(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -150,7 +150,7 @@ PERF_TEST_P(LogFixture, Log, OCL_TYPICAL_MAT_SIZES)
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, src.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::log(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::log(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -190,7 +190,7 @@ PERF_TEST_P(AddFixture, Add,
|
||||
{
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::add(oclSrc1, oclSrc2, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::add(oclSrc1, oclSrc2, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -229,7 +229,7 @@ PERF_TEST_P(MulFixture, Mul, ::testing::Combine(OCL_TYPICAL_MAT_SIZES,
|
||||
{
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::multiply(oclSrc1, oclSrc2, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::multiply(oclSrc1, oclSrc2, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -275,7 +275,7 @@ PERF_TEST_P(DivFixture, Div,
|
||||
{
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::divide(oclSrc1, oclSrc2, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::divide(oclSrc1, oclSrc2, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -312,7 +312,7 @@ PERF_TEST_P(AbsDiffFixture, Absdiff,
|
||||
{
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::absdiff(oclSrc1, oclSrc2, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::absdiff(oclSrc1, oclSrc2, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -351,7 +351,7 @@ PERF_TEST_P(CartToPolarFixture, CartToPolar, OCL_TYPICAL_MAT_SIZES)
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2),
|
||||
oclDst1(srcSize, src1.type()), oclDst2(srcSize, src1.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::cartToPolar(oclSrc1, oclSrc2, oclDst1, oclDst2);
|
||||
OCL_TEST_CYCLE() cv::ocl::cartToPolar(oclSrc1, oclSrc2, oclDst1, oclDst2);
|
||||
|
||||
oclDst1.download(dst1);
|
||||
oclDst2.download(dst2);
|
||||
@@ -392,7 +392,7 @@ PERF_TEST_P(PolarToCartFixture, PolarToCart, OCL_TYPICAL_MAT_SIZES)
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2),
|
||||
oclDst1(srcSize, src1.type()), oclDst2(srcSize, src1.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::polarToCart(oclSrc1, oclSrc2, oclDst1, oclDst2);
|
||||
OCL_TEST_CYCLE() cv::ocl::polarToCart(oclSrc1, oclSrc2, oclDst1, oclDst2);
|
||||
|
||||
oclDst1.download(dst1);
|
||||
oclDst2.download(dst2);
|
||||
@@ -430,7 +430,7 @@ PERF_TEST_P(MagnitudeFixture, Magnitude, OCL_TYPICAL_MAT_SIZES)
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2),
|
||||
oclDst(srcSize, src1.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::magnitude(oclSrc1, oclSrc2, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::magnitude(oclSrc1, oclSrc2, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -465,7 +465,7 @@ PERF_TEST_P(TransposeFixture, Transpose,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::transpose(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::transpose(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -500,7 +500,7 @@ PERF_TEST_P(FlipFixture, Flip,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::flip(oclSrc, oclDst, 0);
|
||||
OCL_TEST_CYCLE() cv::ocl::flip(oclSrc, oclDst, 0);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -538,7 +538,7 @@ PERF_TEST_P(minMaxFixture, minMax,
|
||||
{
|
||||
ocl::oclMat oclSrc(src);
|
||||
|
||||
TEST_CYCLE() cv::ocl::minMax(oclSrc, &min_val, &max_val);
|
||||
OCL_TEST_CYCLE() cv::ocl::minMax(oclSrc, &min_val, &max_val);
|
||||
|
||||
ASSERT_GE(max_val, min_val);
|
||||
SANITY_CHECK(min_val);
|
||||
@@ -581,7 +581,7 @@ PERF_TEST_P(minMaxLocFixture, minMaxLoc,
|
||||
{
|
||||
ocl::oclMat oclSrc(src);
|
||||
|
||||
TEST_CYCLE() cv::ocl::minMaxLoc(oclSrc, &min_val, &max_val, &min_loc, &max_loc);
|
||||
OCL_TEST_CYCLE() cv::ocl::minMaxLoc(oclSrc, &min_val, &max_val, &min_loc, &max_loc);
|
||||
|
||||
ASSERT_GE(max_val, min_val);
|
||||
SANITY_CHECK(min_val);
|
||||
@@ -620,7 +620,7 @@ PERF_TEST_P(SumFixture, Sum,
|
||||
{
|
||||
ocl::oclMat oclSrc(src);
|
||||
|
||||
TEST_CYCLE() result = cv::ocl::sum(oclSrc);
|
||||
OCL_TEST_CYCLE() result = cv::ocl::sum(oclSrc);
|
||||
|
||||
SANITY_CHECK(result);
|
||||
}
|
||||
@@ -655,7 +655,7 @@ PERF_TEST_P(countNonZeroFixture, countNonZero,
|
||||
{
|
||||
ocl::oclMat oclSrc(src);
|
||||
|
||||
TEST_CYCLE() result = cv::ocl::countNonZero(oclSrc);
|
||||
OCL_TEST_CYCLE() result = cv::ocl::countNonZero(oclSrc);
|
||||
|
||||
SANITY_CHECK(result);
|
||||
}
|
||||
@@ -688,7 +688,7 @@ PERF_TEST_P(PhaseFixture, Phase, OCL_TYPICAL_MAT_SIZES)
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2),
|
||||
oclDst(srcSize, src1.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::phase(oclSrc1, oclSrc2, oclDst, 1);
|
||||
OCL_TEST_CYCLE() cv::ocl::phase(oclSrc1, oclSrc2, oclDst, 1);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -725,7 +725,7 @@ PERF_TEST_P(BitwiseAndFixture, bitwise_and,
|
||||
{
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2), oclDst(srcSize, src1.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::bitwise_and(oclSrc1, oclSrc2, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::bitwise_and(oclSrc1, oclSrc2, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -760,7 +760,7 @@ PERF_TEST_P(BitwiseAndFixture, bitwise_not,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::bitwise_not(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::bitwise_not(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -795,7 +795,7 @@ PERF_TEST_P(CompareFixture, compare,
|
||||
{
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2), oclDst(srcSize, CV_8UC1);
|
||||
|
||||
TEST_CYCLE() cv::ocl::compare(oclSrc1, oclSrc2, oclDst, CMP_EQ);
|
||||
OCL_TEST_CYCLE() cv::ocl::compare(oclSrc1, oclSrc2, oclDst, CMP_EQ);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -826,7 +826,7 @@ PERF_TEST_P(PowFixture, pow, OCL_TYPICAL_MAT_SIZES)
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, src.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::pow(oclSrc, -2.0, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::pow(oclSrc, -2.0, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -858,7 +858,7 @@ PERF_TEST_P(MagnitudeSqrFixture, MagnitudeSqr, OCL_TYPICAL_MAT_SIZES)
|
||||
{
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2), oclDst(srcSize, src1.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::magnitudeSqr(oclSrc1, oclSrc2, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::magnitudeSqr(oclSrc1, oclSrc2, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -910,7 +910,7 @@ PERF_TEST_P(AddWeightedFixture, AddWeighted,
|
||||
{
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::addWeighted(oclSrc1, alpha, oclSrc2, beta, gama, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::addWeighted(oclSrc1, alpha, oclSrc2, beta, gama, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
|
@@ -97,7 +97,7 @@ PERF_TEST_P(blendLinearFixture, blendLinear, OCL_TYPICAL_MAT_SIZES)
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2), oclDst;
|
||||
ocl::oclMat oclWeights1(weights1), oclWeights2(weights2);
|
||||
|
||||
TEST_CYCLE() cv::ocl::blendLinear(oclSrc1, oclSrc2, oclWeights1, oclWeights2, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::blendLinear(oclSrc1, oclSrc2, oclWeights1, oclWeights2, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
|
@@ -60,7 +60,7 @@ PERF_TEST_P(BruteForceMatcherFixture, DISABLED_match,
|
||||
|
||||
vector<DMatch> matches;
|
||||
Mat query(srcSize, CV_32F), train(srcSize, CV_32F);
|
||||
declare.in(query, train).time(srcSize.height == 2000 ? 8 : 4 );
|
||||
declare.in(query, train).time(srcSize.height == 2000 ? 9 : 4 );
|
||||
randu(query, 0.0f, 1.0f);
|
||||
randu(train, 0.0f, 1.0f);
|
||||
|
||||
@@ -75,8 +75,12 @@ PERF_TEST_P(BruteForceMatcherFixture, DISABLED_match,
|
||||
{
|
||||
ocl::BruteForceMatcher_OCL_base oclMatcher(ocl::BruteForceMatcher_OCL_base::L2Dist);
|
||||
ocl::oclMat oclQuery(query), oclTrain(train);
|
||||
ocl::oclMat oclTrainIdx, oclDistance;
|
||||
|
||||
TEST_CYCLE() oclMatcher.match(oclQuery, oclTrain, matches);
|
||||
OCL_TEST_CYCLE()
|
||||
oclMatcher.matchSingle(oclQuery, oclTrain, oclTrainIdx, oclDistance);
|
||||
|
||||
oclMatcher.matchDownload(oclTrainIdx, oclDistance, matches);
|
||||
|
||||
SANITY_CHECK_MATCHES(matches);
|
||||
}
|
||||
@@ -85,7 +89,7 @@ PERF_TEST_P(BruteForceMatcherFixture, DISABLED_match,
|
||||
}
|
||||
|
||||
PERF_TEST_P(BruteForceMatcherFixture, DISABLED_knnMatch,
|
||||
OCL_BFMATCHER_TYPICAL_MAT_SIZES) // TODO too many outliers
|
||||
OCL_BFMATCHER_TYPICAL_MAT_SIZES) // TODO too big difference between implementations
|
||||
{
|
||||
const Size srcSize = GetParam();
|
||||
|
||||
@@ -96,11 +100,11 @@ PERF_TEST_P(BruteForceMatcherFixture, DISABLED_knnMatch,
|
||||
|
||||
declare.in(query, train);
|
||||
if (srcSize.height == 2000)
|
||||
declare.time(8);
|
||||
declare.time(9);
|
||||
|
||||
if (RUN_PLAIN_IMPL)
|
||||
{
|
||||
BFMatcher matcher (NORM_L2);
|
||||
BFMatcher matcher(NORM_L2);
|
||||
TEST_CYCLE() matcher.knnMatch(query, train, matches, 2);
|
||||
|
||||
std::vector<DMatch> & matches0 = matches[0], & matches1 = matches[1];
|
||||
@@ -111,8 +115,12 @@ PERF_TEST_P(BruteForceMatcherFixture, DISABLED_knnMatch,
|
||||
{
|
||||
ocl::BruteForceMatcher_OCL_base oclMatcher(ocl::BruteForceMatcher_OCL_base::L2Dist);
|
||||
ocl::oclMat oclQuery(query), oclTrain(train);
|
||||
ocl::oclMat oclTrainIdx, oclDistance, oclAllDist;
|
||||
|
||||
TEST_CYCLE() oclMatcher.knnMatch(oclQuery, oclTrain, matches, 2);
|
||||
OCL_TEST_CYCLE()
|
||||
oclMatcher.knnMatchSingle(oclQuery, oclTrain, oclTrainIdx, oclDistance, oclAllDist, 2);
|
||||
|
||||
oclMatcher.knnMatchDownload(oclTrainIdx, oclDistance, matches);
|
||||
|
||||
std::vector<DMatch> & matches0 = matches[0], & matches1 = matches[1];
|
||||
SANITY_CHECK_MATCHES(matches0);
|
||||
@@ -122,8 +130,8 @@ PERF_TEST_P(BruteForceMatcherFixture, DISABLED_knnMatch,
|
||||
OCL_PERF_ELSE
|
||||
}
|
||||
|
||||
PERF_TEST_P(BruteForceMatcherFixture, DISABLED_radiusMatch,
|
||||
OCL_BFMATCHER_TYPICAL_MAT_SIZES) // TODO too many outliers
|
||||
PERF_TEST_P(BruteForceMatcherFixture, radiusMatch,
|
||||
OCL_BFMATCHER_TYPICAL_MAT_SIZES)
|
||||
{
|
||||
const Size srcSize = GetParam();
|
||||
|
||||
@@ -131,15 +139,17 @@ PERF_TEST_P(BruteForceMatcherFixture, DISABLED_radiusMatch,
|
||||
vector<vector<DMatch> > matches(2);
|
||||
Mat query(srcSize, CV_32F), train(srcSize, CV_32F);
|
||||
declare.in(query, train);
|
||||
Mat trainIdx, distance, allDist;
|
||||
|
||||
randu(query, 0.0f, 1.0f);
|
||||
randu(train, 0.0f, 1.0f);
|
||||
|
||||
if (srcSize.height == 2000)
|
||||
declare.time(9.15);
|
||||
|
||||
if (RUN_PLAIN_IMPL)
|
||||
{
|
||||
BFMatcher matcher (NORM_L2);
|
||||
TEST_CYCLE() matcher.radiusMatch(query, matches, max_distance);
|
||||
cv::BFMatcher matcher(NORM_L2);
|
||||
TEST_CYCLE() matcher.radiusMatch(query, train, matches, max_distance);
|
||||
|
||||
std::vector<DMatch> & matches0 = matches[0], & matches1 = matches[1];
|
||||
SANITY_CHECK_MATCHES(matches0);
|
||||
@@ -149,8 +159,12 @@ PERF_TEST_P(BruteForceMatcherFixture, DISABLED_radiusMatch,
|
||||
{
|
||||
ocl::oclMat oclQuery(query), oclTrain(train);
|
||||
ocl::BruteForceMatcher_OCL_base oclMatcher(ocl::BruteForceMatcher_OCL_base::L2Dist);
|
||||
ocl::oclMat oclTrainIdx, oclDistance, oclNMatches;
|
||||
|
||||
TEST_CYCLE() oclMatcher.radiusMatch(oclQuery, oclTrain, matches, max_distance);
|
||||
OCL_TEST_CYCLE()
|
||||
oclMatcher.radiusMatchSingle(oclQuery, oclTrain, oclTrainIdx, oclDistance, oclNMatches, max_distance);
|
||||
|
||||
oclMatcher.radiusMatchDownload(oclTrainIdx, oclDistance, oclNMatches, matches);
|
||||
|
||||
std::vector<DMatch> & matches0 = matches[0], & matches1 = matches[1];
|
||||
SANITY_CHECK_MATCHES(matches0);
|
||||
|
@@ -48,7 +48,7 @@
|
||||
|
||||
///////////// StereoMatchBM ////////////////////////
|
||||
|
||||
PERF_TEST(StereoMatchBMFixture, DISABLED_StereoMatchBM) // TODO doesn't work properly
|
||||
PERF_TEST(StereoMatchBMFixture, StereoMatchBM)
|
||||
{
|
||||
Mat left_image = imread(getDataPath("gpu/stereobm/aloe-L.png"), cv::IMREAD_GRAYSCALE);
|
||||
Mat right_image = imread(getDataPath("gpu/stereobm/aloe-R.png"), cv::IMREAD_GRAYSCALE);
|
||||
@@ -69,20 +69,17 @@ PERF_TEST(StereoMatchBMFixture, DISABLED_StereoMatchBM) // TODO doesn't work pro
|
||||
oclDisp(left_image.size(), CV_16SC1);
|
||||
ocl::StereoBM_OCL oclBM(0, n_disp, winSize);
|
||||
|
||||
TEST_CYCLE() oclBM(oclLeft, oclRight, oclDisp);
|
||||
|
||||
oclDisp.download(disp);
|
||||
|
||||
SANITY_CHECK(disp);
|
||||
OCL_TEST_CYCLE() oclBM(oclLeft, oclRight, oclDisp);
|
||||
}
|
||||
else if (RUN_PLAIN_IMPL)
|
||||
{
|
||||
Ptr<StereoBM> bm = createStereoBM(n_disp, winSize);
|
||||
|
||||
TEST_CYCLE() bm->compute(left_image, right_image, disp);
|
||||
|
||||
SANITY_CHECK(disp);
|
||||
}
|
||||
else
|
||||
OCL_PERF_ELSE
|
||||
|
||||
int value = 0;
|
||||
SANITY_CHECK(value);
|
||||
}
|
||||
|
@@ -49,7 +49,7 @@ using namespace perf;
|
||||
|
||||
///////////// Canny ////////////////////////
|
||||
|
||||
PERF_TEST(CannyFixture, DISABLED_Canny) // TODO difference between implmentations
|
||||
PERF_TEST(CannyFixture, Canny)
|
||||
{
|
||||
Mat img = imread(getDataPath("gpu/stereobm/aloe-L.png"), cv::IMREAD_GRAYSCALE),
|
||||
edges(img.size(), CV_8UC1);
|
||||
@@ -61,17 +61,16 @@ PERF_TEST(CannyFixture, DISABLED_Canny) // TODO difference between implmentation
|
||||
{
|
||||
ocl::oclMat oclImg(img), oclEdges(img.size(), CV_8UC1);
|
||||
|
||||
TEST_CYCLE() ocl::Canny(oclImg, oclEdges, 50.0, 100.0);
|
||||
OCL_TEST_CYCLE() ocl::Canny(oclImg, oclEdges, 50.0, 100.0);
|
||||
oclEdges.download(edges);
|
||||
|
||||
SANITY_CHECK(edges);
|
||||
}
|
||||
else if (RUN_PLAIN_IMPL)
|
||||
{
|
||||
TEST_CYCLE() Canny(img, edges, 50.0, 100.0);
|
||||
|
||||
SANITY_CHECK(edges);
|
||||
}
|
||||
else
|
||||
OCL_PERF_ELSE
|
||||
|
||||
int value = 0;
|
||||
SANITY_CHECK(value);
|
||||
}
|
||||
|
@@ -62,7 +62,7 @@ PERF_TEST_P(cvtColorFixture, cvtColor, OCL_TYPICAL_MAT_SIZES)
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(src.size(), CV_8UC4);
|
||||
|
||||
TEST_CYCLE() ocl::cvtColor(oclSrc, oclDst, COLOR_RGBA2GRAY, 4);
|
||||
OCL_TEST_CYCLE() ocl::cvtColor(oclSrc, oclDst, COLOR_RGBA2GRAY, 4);
|
||||
oclDst.download(dst);
|
||||
|
||||
SANITY_CHECK(dst);
|
||||
|
@@ -66,7 +66,7 @@ PERF_TEST_P(dftFixture, DISABLED_dft, OCL_TYPICAL_MAT_SIZES) // TODO not impleme
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst;
|
||||
|
||||
TEST_CYCLE() cv::ocl::dft(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::dft(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
|
@@ -71,7 +71,7 @@ PERF_TEST_P(BlurFixture, Blur,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::blur(oclSrc, oclDst, ksize, Point(-1, -1), bordertype);
|
||||
OCL_TEST_CYCLE() cv::ocl::blur(oclSrc, oclDst, ksize, Point(-1, -1), bordertype);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -109,7 +109,7 @@ PERF_TEST_P(LaplacianFixture, Laplacian,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::Laplacian(oclSrc, oclDst, -1, ksize, 1);
|
||||
OCL_TEST_CYCLE() cv::ocl::Laplacian(oclSrc, oclDst, -1, ksize, 1);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -148,7 +148,7 @@ PERF_TEST_P(ErodeFixture, Erode,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type), oclKer(ker);
|
||||
|
||||
TEST_CYCLE() cv::ocl::erode(oclSrc, oclDst, oclKer);
|
||||
OCL_TEST_CYCLE() cv::ocl::erode(oclSrc, oclDst, oclKer);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -189,7 +189,7 @@ PERF_TEST_P(SobelFixture, Sobel,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::Sobel(oclSrc, oclDst, -1, dx, dy);
|
||||
OCL_TEST_CYCLE() cv::ocl::Sobel(oclSrc, oclDst, -1, dx, dy);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -230,7 +230,7 @@ PERF_TEST_P(ScharrFixture, Scharr,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::Scharr(oclSrc, oclDst, -1, dx, dy);
|
||||
OCL_TEST_CYCLE() cv::ocl::Scharr(oclSrc, oclDst, -1, dx, dy);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -267,7 +267,7 @@ PERF_TEST_P(GaussianBlurFixture, GaussianBlur,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::GaussianBlur(oclSrc, oclDst, Size(ksize, ksize), 0);
|
||||
OCL_TEST_CYCLE() cv::ocl::GaussianBlur(oclSrc, oclDst, Size(ksize, ksize), 0);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -306,7 +306,7 @@ PERF_TEST_P(filter2DFixture, filter2D,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type), oclKernel(kernel);
|
||||
|
||||
TEST_CYCLE() cv::ocl::filter2D(oclSrc, oclDst, -1, oclKernel);
|
||||
OCL_TEST_CYCLE() cv::ocl::filter2D(oclSrc, oclDst, -1, oclKernel);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
|
@@ -51,13 +51,14 @@ using namespace perf;
|
||||
|
||||
typedef TestBaseWithParam<Size> gemmFixture;
|
||||
|
||||
PERF_TEST_P(gemmFixture, DISABLED_gemm, OCL_TYPICAL_MAT_SIZES) // TODO not implemented
|
||||
PERF_TEST_P(gemmFixture, DISABLED_gemm,
|
||||
::testing::Values(OCL_SIZE_1000, OCL_SIZE_2000)) // TODO not implemented
|
||||
{
|
||||
const Size srcSize = GetParam();
|
||||
|
||||
Mat src1(srcSize, CV_32FC1), src2(srcSize, CV_32FC1),
|
||||
src3(srcSize, CV_32FC1), dst(srcSize, CV_32FC1);
|
||||
declare.in(src1, src2, src3).out(dst);
|
||||
declare.in(src1, src2, src3).out(dst).time(srcSize == OCL_SIZE_2000 ? 65 : 8);
|
||||
randu(src1, -10.0f, 10.0f);
|
||||
randu(src2, -10.0f, 10.0f);
|
||||
randu(src3, -10.0f, 10.0f);
|
||||
@@ -67,7 +68,7 @@ PERF_TEST_P(gemmFixture, DISABLED_gemm, OCL_TYPICAL_MAT_SIZES) // TODO not imple
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2),
|
||||
oclSrc3(src3), oclDst(srcSize, CV_32FC1);
|
||||
|
||||
TEST_CYCLE() cv::ocl::gemm(oclSrc1, oclSrc2, 1.0, oclSrc3, 1.0, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::gemm(oclSrc1, oclSrc2, 1.0, oclSrc3, 1.0, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
|
@@ -77,7 +77,7 @@ PERF_TEST_P(GoodFeaturesToTrackFixture, GoodFeaturesToTrack,
|
||||
ocl::oclMat oclFrame(frame), pts_oclmat;
|
||||
ocl::GoodFeaturesToTrackDetector_OCL detector(maxCorners, qualityLevel, minDistance);
|
||||
|
||||
TEST_CYCLE() detector(oclFrame, pts_oclmat);
|
||||
OCL_TEST_CYCLE() detector(oclFrame, pts_oclmat);
|
||||
|
||||
detector.downloadPoints(pts_oclmat, pts_gold);
|
||||
|
||||
|
@@ -78,7 +78,7 @@ PERF_TEST(HaarFixture, Haar)
|
||||
ASSERT_TRUE(faceCascade.load(getDataPath("gpu/haarcascade/haarcascade_frontalface_alt.xml")))
|
||||
<< "can't load haarcascade_frontalface_alt.xml";
|
||||
|
||||
TEST_CYCLE() faceCascade.detectMultiScale(oclImg, faces,
|
||||
OCL_TEST_CYCLE() faceCascade.detectMultiScale(oclImg, faces,
|
||||
1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30));
|
||||
|
||||
SANITY_CHECK(faces, 4 + 1e-4);
|
||||
|
@@ -72,7 +72,7 @@ PERF_TEST(HOGFixture, HOG)
|
||||
ocl_hog.setSVMDetector(ocl_hog.getDefaultPeopleDetector());
|
||||
ocl::oclMat oclSrc(src);
|
||||
|
||||
TEST_CYCLE() ocl_hog.detectMultiScale(oclSrc, found_locations);
|
||||
OCL_TEST_CYCLE() ocl_hog.detectMultiScale(oclSrc, found_locations);
|
||||
|
||||
SANITY_CHECK(found_locations, 1 + DBL_EPSILON);
|
||||
}
|
||||
|
@@ -64,7 +64,7 @@ PERF_TEST_P(equalizeHistFixture, equalizeHist, OCL_TYPICAL_MAT_SIZES)
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, src.type());
|
||||
|
||||
TEST_CYCLE() cv::ocl::equalizeHist(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::equalizeHist(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -101,7 +101,7 @@ PERF_TEST_P(CopyMakeBorderFixture, CopyMakeBorder,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(dstSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::copyMakeBorder(oclSrc, oclDst, 7, 5, 5, 7, borderType, cv::Scalar(1.0));
|
||||
OCL_TEST_CYCLE() cv::ocl::copyMakeBorder(oclSrc, oclDst, 7, 5, 5, 7, borderType, cv::Scalar(1.0));
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -141,7 +141,7 @@ PERF_TEST_P(cornerMinEigenValFixture, cornerMinEigenVal,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, CV_32FC1);
|
||||
|
||||
TEST_CYCLE() cv::ocl::cornerMinEigenVal(oclSrc, oclDst, blockSize, apertureSize, borderType);
|
||||
OCL_TEST_CYCLE() cv::ocl::cornerMinEigenVal(oclSrc, oclDst, blockSize, apertureSize, borderType);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -178,7 +178,7 @@ PERF_TEST_P(cornerHarrisFixture, cornerHarris,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, CV_32FC1);
|
||||
|
||||
TEST_CYCLE() cv::ocl::cornerHarris(oclSrc, oclDst, 5, 7, 0.1, borderType);
|
||||
OCL_TEST_CYCLE() cv::ocl::cornerHarris(oclSrc, oclDst, 5, 7, 0.1, borderType);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -209,7 +209,7 @@ PERF_TEST_P(integralFixture, DISABLED_integral, OCL_TYPICAL_MAT_SIZES) // TODO d
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst;
|
||||
|
||||
TEST_CYCLE() cv::ocl::integral(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::integral(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -252,7 +252,7 @@ PERF_TEST_P(WarpAffineFixture, WarpAffine,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::warpAffine(oclSrc, oclDst, M, srcSize, interpolation);
|
||||
OCL_TEST_CYCLE() cv::ocl::warpAffine(oclSrc, oclDst, M, srcSize, interpolation);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -297,7 +297,7 @@ PERF_TEST_P(WarpPerspectiveFixture, WarpPerspective,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::warpPerspective(oclSrc, oclDst, M, srcSize, interpolation);
|
||||
OCL_TEST_CYCLE() cv::ocl::warpPerspective(oclSrc, oclDst, M, srcSize, interpolation);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -342,7 +342,7 @@ PERF_TEST_P(resizeFixture, resize,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(dstSize, type);
|
||||
|
||||
TEST_CYCLE() cv::ocl::resize(oclSrc, oclDst, Size(), scale, scale, interType);
|
||||
OCL_TEST_CYCLE() cv::ocl::resize(oclSrc, oclDst, Size(), scale, scale, interType);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -381,7 +381,7 @@ PERF_TEST_P(ThreshFixture, threshold,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, CV_8U);
|
||||
|
||||
TEST_CYCLE() cv::ocl::threshold(oclSrc, oclDst, 50.0, 0.0, threshType);
|
||||
OCL_TEST_CYCLE() cv::ocl::threshold(oclSrc, oclDst, 50.0, 0.0, threshType);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -611,7 +611,7 @@ PERF_TEST_P(meanShiftFilteringFixture, meanShiftFiltering,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, CV_8UC4);
|
||||
|
||||
TEST_CYCLE() ocl::meanShiftFiltering(oclSrc, oclDst, sp, sr, crit);
|
||||
OCL_TEST_CYCLE() ocl::meanShiftFiltering(oclSrc, oclDst, sp, sr, crit);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -706,7 +706,7 @@ PERF_TEST_P(meanShiftProcFixture, meanShiftProc,
|
||||
ocl::oclMat oclSrc(src), oclDst1(srcSize, CV_8UC4),
|
||||
oclDst2(srcSize, CV_16SC2);
|
||||
|
||||
TEST_CYCLE() ocl::meanShiftProc(oclSrc, oclDst1, oclDst2, 5, 6, crit);
|
||||
OCL_TEST_CYCLE() ocl::meanShiftProc(oclSrc, oclDst1, oclDst2, 5, 6, crit);
|
||||
|
||||
oclDst1.download(dst1);
|
||||
oclDst2.download(dst2);
|
||||
@@ -763,7 +763,7 @@ PERF_TEST_P(remapFixture, remap,
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
ocl::oclMat oclXMap(xmap), oclYMap(ymap);
|
||||
|
||||
TEST_CYCLE() cv::ocl::remap(oclSrc, oclDst, oclXMap, oclYMap, interpolation, borderMode);
|
||||
OCL_TEST_CYCLE() cv::ocl::remap(oclSrc, oclDst, oclXMap, oclYMap, interpolation, borderMode);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -800,7 +800,7 @@ PERF_TEST_P(CLAHEFixture, CLAHE, OCL_TYPICAL_MAT_SIZES)
|
||||
ocl::oclMat oclSrc(src), oclDst;
|
||||
cv::Ptr<cv::CLAHE> oclClahe = cv::ocl::createCLAHE(clipLimit);
|
||||
|
||||
TEST_CYCLE() oclClahe->apply(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() oclClahe->apply(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -845,7 +845,7 @@ PERF_TEST_P(columnSumFixture, columnSum, OCL_TYPICAL_MAT_SIZES)
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, CV_32FC1);
|
||||
|
||||
TEST_CYCLE() cv::ocl::columnSum(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::columnSum(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
|
@@ -72,7 +72,7 @@ PERF_TEST_P(CV_TM_CCORRFixture, matchTemplate,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclTempl(templ), oclDst(dstSize, CV_32F);
|
||||
|
||||
TEST_CYCLE() cv::ocl::matchTemplate(oclSrc, oclTempl, oclDst, TM_CCORR);
|
||||
OCL_TEST_CYCLE() cv::ocl::matchTemplate(oclSrc, oclTempl, oclDst, TM_CCORR);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -104,7 +104,7 @@ PERF_TEST_P(CV_TM_CCORR_NORMEDFixture, matchTemplate, OCL_TYPICAL_MAT_SIZES)
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclTempl(templ), oclDst(dstSize, CV_8UC1);
|
||||
|
||||
TEST_CYCLE() cv::ocl::matchTemplate(oclSrc, oclTempl, oclDst, TM_CCORR_NORMED);
|
||||
OCL_TEST_CYCLE() cv::ocl::matchTemplate(oclSrc, oclTempl, oclDst, TM_CCORR_NORMED);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
|
@@ -70,7 +70,7 @@ PERF_TEST_P(ConvertToFixture, ConvertTo,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, dstType);
|
||||
|
||||
TEST_CYCLE() oclSrc.convertTo(oclDst, dstType);
|
||||
OCL_TEST_CYCLE() oclSrc.convertTo(oclDst, dstType);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -105,7 +105,7 @@ PERF_TEST_P(copyToFixture, copyTo,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(srcSize, type);
|
||||
|
||||
TEST_CYCLE() oclSrc.copyTo(oclDst);
|
||||
OCL_TEST_CYCLE() oclSrc.copyTo(oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -141,7 +141,7 @@ PERF_TEST_P(setToFixture, setTo,
|
||||
{
|
||||
ocl::oclMat oclSrc(srcSize, type);
|
||||
|
||||
TEST_CYCLE() oclSrc.setTo(val);
|
||||
OCL_TEST_CYCLE() oclSrc.setTo(val);
|
||||
oclSrc.download(src);
|
||||
|
||||
SANITY_CHECK(src);
|
||||
|
@@ -72,7 +72,7 @@ PERF_TEST_P(MomentsFixture, DISABLED_Moments,
|
||||
{
|
||||
ocl::oclMat oclSrc(src);
|
||||
|
||||
TEST_CYCLE() mom = cv::ocl::ocl_moments(oclSrc, binaryImage); // TODO Use oclSrc
|
||||
OCL_TEST_CYCLE() mom = cv::ocl::ocl_moments(oclSrc, binaryImage); // TODO Use oclSrc
|
||||
cv::HuMoments(mom, dst);
|
||||
|
||||
SANITY_CHECK(dst);
|
||||
|
@@ -68,7 +68,7 @@ PERF_TEST_P(normFixture, DISABLED_norm, OCL_TYPICAL_MAT_SIZES) // TODO doesn't w
|
||||
{
|
||||
ocl::oclMat oclSrc1(src1), oclSrc2(src2);
|
||||
|
||||
TEST_CYCLE() value = cv::ocl::norm(oclSrc1, oclSrc2, NORM_INF);
|
||||
OCL_TEST_CYCLE() value = cv::ocl::norm(oclSrc1, oclSrc2, NORM_INF);
|
||||
|
||||
SANITY_CHECK(value);
|
||||
}
|
||||
|
@@ -52,25 +52,13 @@ using std::tr1::get;
|
||||
using std::tr1::tuple;
|
||||
using std::tr1::make_tuple;
|
||||
|
||||
template <typename T>
|
||||
static vector<T> & MatToVector(const ocl::oclMat & oclSrc, vector<T> & instance)
|
||||
{
|
||||
Mat src;
|
||||
oclSrc.download(src);
|
||||
|
||||
for (int i = 0; i < src.cols; ++i)
|
||||
instance.push_back(src.at<T>(0, i));
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
CV_ENUM(LoadMode, IMREAD_GRAYSCALE, IMREAD_COLOR)
|
||||
|
||||
typedef tuple<int, tuple<string, string, LoadMode> > PyrLKOpticalFlowParamType;
|
||||
typedef TestBaseWithParam<PyrLKOpticalFlowParamType> PyrLKOpticalFlowFixture;
|
||||
|
||||
PERF_TEST_P(PyrLKOpticalFlowFixture,
|
||||
DISABLED_PyrLKOpticalFlow,
|
||||
PyrLKOpticalFlow,
|
||||
::testing::Combine(
|
||||
::testing::Values(1000, 2000, 4000),
|
||||
::testing::Values(
|
||||
@@ -79,8 +67,8 @@ PERF_TEST_P(PyrLKOpticalFlowFixture,
|
||||
string("gpu/opticalflow/rubberwhale1.png"),
|
||||
string("gpu/opticalflow/rubberwhale2.png"),
|
||||
LoadMode(IMREAD_COLOR)
|
||||
)
|
||||
, make_tuple<string, string, LoadMode>
|
||||
),
|
||||
make_tuple<string, string, LoadMode>
|
||||
(
|
||||
string("gpu/stereobm/aloe-L.png"),
|
||||
string("gpu/stereobm/aloe-R.png"),
|
||||
@@ -88,7 +76,7 @@ PERF_TEST_P(PyrLKOpticalFlowFixture,
|
||||
)
|
||||
)
|
||||
)
|
||||
) // TODO to big difference between implementations
|
||||
)
|
||||
{
|
||||
PyrLKOpticalFlowParamType params = GetParam();
|
||||
tuple<string, string, LoadMode> fileParam = get<1>(params);
|
||||
@@ -98,6 +86,8 @@ PERF_TEST_P(PyrLKOpticalFlowFixture,
|
||||
Mat frame0 = imread(getDataPath(fileName0), openMode);
|
||||
Mat frame1 = imread(getDataPath(fileName1), openMode);
|
||||
|
||||
declare.in(frame0, frame1);
|
||||
|
||||
ASSERT_FALSE(frame0.empty()) << "can't load " << fileName0;
|
||||
ASSERT_FALSE(frame1.empty()) << "can't load " << fileName1;
|
||||
|
||||
@@ -111,36 +101,28 @@ PERF_TEST_P(PyrLKOpticalFlowFixture,
|
||||
vector<unsigned char> status;
|
||||
vector<float> err;
|
||||
goodFeaturesToTrack(grayFrame, pts, pointsCount, 0.01, 0.0);
|
||||
Mat ptsMat(1, static_cast<int>(pts.size()), CV_32FC2, (void *)&pts[0]);
|
||||
|
||||
if (RUN_PLAIN_IMPL)
|
||||
{
|
||||
TEST_CYCLE()
|
||||
cv::calcOpticalFlowPyrLK(frame0, frame1, pts, nextPts, status, err);
|
||||
|
||||
SANITY_CHECK(nextPts);
|
||||
SANITY_CHECK(status);
|
||||
SANITY_CHECK(err);
|
||||
}
|
||||
else if (RUN_OCL_IMPL)
|
||||
{
|
||||
ocl::PyrLKOpticalFlow oclPyrLK;
|
||||
ocl::oclMat oclFrame0(frame0), oclFrame1(frame1);
|
||||
ocl::oclMat oclPts(1, static_cast<int>(pts.size()), CV_32FC2, (void *)&pts[0]);
|
||||
ocl::oclMat oclPts(ptsMat);
|
||||
ocl::oclMat oclNextPts, oclStatus, oclErr;
|
||||
|
||||
TEST_CYCLE()
|
||||
OCL_TEST_CYCLE()
|
||||
oclPyrLK.sparse(oclFrame0, oclFrame1, oclPts, oclNextPts, oclStatus, &oclErr);
|
||||
|
||||
MatToVector(oclNextPts, nextPts);
|
||||
MatToVector(oclStatus, status);
|
||||
MatToVector(oclErr, err);
|
||||
|
||||
SANITY_CHECK(nextPts);
|
||||
SANITY_CHECK(status);
|
||||
SANITY_CHECK(err);
|
||||
}
|
||||
else
|
||||
OCL_PERF_ELSE
|
||||
|
||||
int value = 0;
|
||||
SANITY_CHECK(value);
|
||||
}
|
||||
|
||||
PERF_TEST(tvl1flowFixture, tvl1flow)
|
||||
@@ -175,7 +157,7 @@ PERF_TEST(tvl1flowFixture, tvl1flow)
|
||||
ocl::oclMat oclFrame0(frame0), oclFrame1(frame1), oclFlow1(srcSize, CV_32FC1),
|
||||
oclFlow2(srcSize, CV_32FC1);
|
||||
|
||||
TEST_CYCLE() oclAlg(oclFrame0, oclFrame1, oclFlow1, oclFlow2);
|
||||
OCL_TEST_CYCLE() oclAlg(oclFrame0, oclFrame1, oclFlow1, oclFlow2);
|
||||
|
||||
oclAlg.collectGarbage();
|
||||
|
||||
@@ -259,7 +241,7 @@ PERF_TEST_P(FarnebackOpticalFlowFixture, FarnebackOpticalFlow,
|
||||
farn.flags |= OPTFLOW_USE_INITIAL_FLOW;
|
||||
}
|
||||
|
||||
TEST_CYCLE()
|
||||
OCL_TEST_CYCLE()
|
||||
farn(oclFrame0, oclFrame1, oclFlowx, oclFlowy);
|
||||
|
||||
oclFlowx.download(flowx);
|
||||
|
@@ -1,43 +0,0 @@
|
||||
/*M///////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
|
||||
//
|
||||
// By downloading, copying, installing or using the software you agree to this license.
|
||||
// If you do not agree to this license, do not download, install,
|
||||
// copy or use the software.
|
||||
//
|
||||
//
|
||||
// License Agreement
|
||||
// For Open Source Computer Vision Library
|
||||
//
|
||||
// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved.
|
||||
// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved.
|
||||
// Third party copyrights are property of their respective owners.
|
||||
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// * Redistribution's of source code must retain the above copyright notice,
|
||||
// this list of conditions and the following disclaimer.
|
||||
//
|
||||
// * Redistribution's in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other oclMaterials provided with the distribution.
|
||||
//
|
||||
// * The name of the copyright holders may not be used to endorse or promote products
|
||||
// derived from this software without specific prior written permission.
|
||||
//
|
||||
// This software is provided by the copyright holders and contributors as is and
|
||||
// any express or implied warranties, including, but not limited to, the implied
|
||||
// warranties of merchantability and fitness for a particular purpose are disclaimed.
|
||||
// In no event shall the Intel Corporation or contributors be liable for any direct,
|
||||
// indirect, incidental, special, exemplary, or consequential damages
|
||||
// (including, but not limited to, procurement of substitute goods or services;
|
||||
// loss of use, data, or profits; or business interruption) however caused
|
||||
// and on any theory of liability, whether in contract, strict liability,
|
||||
// or tort (including negligence or otherwise) arising in any way out of
|
||||
// the use of this software, even if advised of the possibility of such damage.
|
||||
//
|
||||
//M*/
|
||||
|
||||
#include "perf_precomp.hpp"
|
@@ -111,4 +111,8 @@ using namespace cv;
|
||||
CV_TEST_FAIL_NO_IMPL();
|
||||
#endif
|
||||
|
||||
#define OCL_TEST_CYCLE_N(n) for(declare.iterations(n); startTimer(), next(); ocl::finish(), stopTimer())
|
||||
#define OCL_TEST_CYCLE() for(; startTimer(), next(); ocl::finish(), stopTimer())
|
||||
#define OCL_TEST_CYCLE_MULTIRUN(runsNum) for(declare.runs(runsNum); startTimer(), next(); stopTimer()) for(int r = 0; r < runsNum; ocl::finish(), ++r)
|
||||
|
||||
#endif
|
||||
|
@@ -70,7 +70,7 @@ PERF_TEST_P(pyrDownFixture, pyrDown,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(dstSize, type);
|
||||
|
||||
TEST_CYCLE() ocl::pyrDown(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() ocl::pyrDown(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -107,7 +107,7 @@ PERF_TEST_P(pyrUpFixture, pyrUp,
|
||||
{
|
||||
ocl::oclMat oclSrc(src), oclDst(dstSize, type);
|
||||
|
||||
TEST_CYCLE() ocl::pyrDown(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() ocl::pyrDown(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
|
@@ -78,7 +78,7 @@ PERF_TEST_P(MergeFixture, Merge,
|
||||
for (vector<ocl::oclMat>::size_type i = 0, end = src.size(); i < end; ++i)
|
||||
oclSrc[i] = src[i];
|
||||
|
||||
TEST_CYCLE() cv::ocl::merge(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::merge(oclSrc, oclDst);
|
||||
|
||||
oclDst.download(dst);
|
||||
|
||||
@@ -114,7 +114,7 @@ PERF_TEST_P(SplitFixture, Split,
|
||||
ocl::oclMat oclSrc(src);
|
||||
vector<ocl::oclMat> oclDst(channels, ocl::oclMat(srcSize, CV_MAKE_TYPE(depth, 1)));
|
||||
|
||||
TEST_CYCLE() cv::ocl::split(oclSrc, oclDst);
|
||||
OCL_TEST_CYCLE() cv::ocl::split(oclSrc, oclDst);
|
||||
|
||||
ASSERT_EQ(3, channels);
|
||||
Mat dst0, dst1, dst2;
|
||||
|
Reference in New Issue
Block a user