|
5 | 5 | #include "perf_precomp.hpp" |
6 | 6 |
|
7 | 7 | namespace opencv_test { |
8 | | -namespace stMorph { |
9 | | - |
10 | | -typedef tuple<int, Size, int> STParams; |
11 | | - |
12 | | -typedef TestBaseWithParam<STParams> STMorphologyPerfTest; |
13 | | - |
14 | | -TEST(Typical_Erode, small) |
15 | | -{ |
16 | | - |
17 | | -} |
18 | | - |
19 | | -PERF_TEST_P(STMorphologyPerfTest, perf, Combine(Values(1,7, 21), Values(sz720p, sz2160p), |
20 | | - Values(MORPH_ERODE, MORPH_DILATE, MORPH_OPEN, MORPH_CLOSE, MORPH_GRADIENT,MORPH_TOPHAT, MORPH_BLACKHAT))) |
21 | | -{ |
22 | | - STParams params = GetParam(); |
23 | | - int seSize = get<0>(params); |
24 | | - Size sz = get<1>(params); |
25 | | - int op = get<2>(params); |
26 | | - |
27 | | - Mat src(sz, CV_8U); |
28 | | - Mat thresholded, dstRLE; |
29 | | - Mat se = rl::getStructuringElement(MORPH_ELLIPSE, cv::Size(2 * seSize + 1, 2 * seSize + 1)); |
30 | | - |
31 | | - declare.in(src, WARMUP_RNG); |
32 | | - |
33 | | - TEST_CYCLE_N(4) |
34 | | - { |
35 | | - rl::threshold(src, thresholded, 100.0, THRESH_BINARY); |
36 | | - rl::morphologyEx(thresholded, dstRLE, op, se); |
37 | | - } |
38 | | - |
39 | | - SANITY_CHECK_NOTHING(); |
40 | | -} |
41 | | - |
42 | | -typedef tuple<int, Size> STErodeParams; |
43 | | -typedef TestBaseWithParam<STErodeParams> STErodePerfTest; |
44 | | -PERF_TEST_P(STErodePerfTest, perf, Combine(Values(1, 7, 21), Values(sz720p, sz2160p))) |
| 8 | +namespace { |
| 9 | + |
| 10 | +typedef tuple<MorphTypes, MorphShapes> MorphTypes_MorphShapes_t; |
| 11 | +typedef TestBaseWithParam<MorphTypes_MorphShapes_t> SparseTableMorphologyPerfTest; |
| 12 | + |
| 13 | +PERF_TEST_P(SparseTableMorphologyPerfTest, perf, |
| 14 | + testing::Combine( |
| 15 | + testing::Values( |
| 16 | + MORPH_ERODE, MORPH_DILATE, MORPH_OPEN, MORPH_CLOSE, |
| 17 | + MORPH_GRADIENT, MORPH_TOPHAT, MORPH_BLACKHAT), |
| 18 | + testing::Values(MORPH_RECT, MORPH_CROSS, MORPH_ELLIPSE) |
| 19 | + ) ) |
45 | 20 | { |
46 | | - STErodeParams params = GetParam(); |
47 | | - int seSize = get<0>(params); |
48 | | - Size sz = get<1>(params); |
| 21 | + MorphTypes_MorphShapes_t params = GetParam(); |
| 22 | + int seSize = 51; |
| 23 | + Size sz = sz1080p; |
| 24 | + MorphTypes op = std::tr1::get<0>(params); |
| 25 | + MorphShapes knType = std::tr1::get<1>(params); |
49 | 26 |
|
50 | | - Mat src(sz, CV_8U); |
51 | | - Mat thresholded, dstRLE; |
52 | | - Mat se = rl::getStructuringElement(MORPH_ELLIPSE, cv::Size(2 * seSize + 1, 2 * seSize + 1)); |
| 27 | + Mat src(sz, CV_8UC3), dst(sz, CV_8UC3); |
| 28 | + Mat kernel = getStructuringElement(knType, cv::Size(2 * seSize + 1, 2 * seSize + 1)); |
53 | 29 |
|
54 | | - declare.in(src, WARMUP_RNG); |
| 30 | + declare.in(src, WARMUP_RNG).out(dst); |
55 | 31 |
|
56 | | - TEST_CYCLE_N(4) |
| 32 | + TEST_CYCLE_N(5) |
57 | 33 | { |
58 | | - rl::threshold(src, thresholded, 100.0, THRESH_BINARY); |
59 | | - rl::erode(thresholded, dstRLE, se); |
| 34 | + cv::stMorph::morphologyEx(src, dst, op, kernel); |
60 | 35 | } |
61 | 36 |
|
62 | 37 | SANITY_CHECK_NOTHING(); |
63 | 38 | } |
64 | 39 |
|
65 | | -} // st |
66 | | -} // morphology |
| 40 | +}} // opencv_test:: :: |
0 commit comments