Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/modules/core/perf/perf_addWeighted.cpp
16354 views
1
#include "perf_precomp.hpp"
2
3
namespace opencv_test
4
{
5
using namespace perf;
6
7
#define TYPICAL_MAT_TYPES_ADWEIGHTED CV_8UC1, CV_8UC4, CV_8SC1, CV_16UC1, CV_16SC1, CV_32SC1
8
#define TYPICAL_MATS_ADWEIGHTED testing::Combine(testing::Values(szVGA, sz720p, sz1080p), testing::Values(TYPICAL_MAT_TYPES_ADWEIGHTED))
9
10
PERF_TEST_P(Size_MatType, addWeighted, TYPICAL_MATS_ADWEIGHTED)
11
{
12
Size size = get<0>(GetParam());
13
int type = get<1>(GetParam());
14
int depth = CV_MAT_DEPTH(type);
15
Mat src1(size, type);
16
Mat src2(size, type);
17
double alpha = 3.75;
18
double beta = -0.125;
19
double gamma = 100.0;
20
21
Mat dst(size, type);
22
23
declare.in(src1, src2, dst, WARMUP_RNG).out(dst);
24
25
if (depth == CV_32S)
26
{
27
// there might be not enough precision for integers
28
src1 /= 2048;
29
src2 /= 2048;
30
}
31
32
TEST_CYCLE() cv::addWeighted( src1, alpha, src2, beta, gamma, dst, dst.type() );
33
34
SANITY_CHECK(dst, depth == CV_32S ? 4 : 1);
35
}
36
37
} // namespace
38
39