99 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include "perf_precomp.hpp"
 | 
						|
 | 
						|
using namespace std;
 | 
						|
using namespace cv;
 | 
						|
using namespace perf;
 | 
						|
using std::tr1::make_tuple;
 | 
						|
using std::tr1::get;
 | 
						|
 | 
						|
PERF_TEST_P(Size_MatType, Mat_Eye,
 | 
						|
            testing::Combine(testing::Values(TYPICAL_MAT_SIZES),
 | 
						|
                             testing::Values(TYPICAL_MAT_TYPES))
 | 
						|
 | 
						|
             )
 | 
						|
{
 | 
						|
    Size size = get<0>(GetParam());
 | 
						|
    int type = get<1>(GetParam());
 | 
						|
    Mat diagonalMatrix(size.height, size.width, type);
 | 
						|
 | 
						|
    declare.out(diagonalMatrix);
 | 
						|
 | 
						|
    int runs = (size.width <= 640) ? 15 : 5;
 | 
						|
    TEST_CYCLE_MULTIRUN(runs)
 | 
						|
    {
 | 
						|
        diagonalMatrix = Mat::eye(size, type);
 | 
						|
    }
 | 
						|
 | 
						|
    SANITY_CHECK(diagonalMatrix, 1);
 | 
						|
}
 | 
						|
 | 
						|
PERF_TEST_P(Size_MatType, Mat_Zeros,
 | 
						|
            testing::Combine(testing::Values(TYPICAL_MAT_SIZES),
 | 
						|
                             testing::Values(TYPICAL_MAT_TYPES, CV_32FC3))
 | 
						|
 | 
						|
             )
 | 
						|
{
 | 
						|
    Size size = get<0>(GetParam());
 | 
						|
    int type = get<1>(GetParam());
 | 
						|
    Mat zeroMatrix(size.height, size.width, type);
 | 
						|
 | 
						|
    declare.out(zeroMatrix);
 | 
						|
 | 
						|
    int runs = (size.width <= 640) ? 15 : 5;
 | 
						|
    TEST_CYCLE_MULTIRUN(runs)
 | 
						|
    {
 | 
						|
        zeroMatrix = Mat::zeros(size, type);
 | 
						|
    }
 | 
						|
 | 
						|
    SANITY_CHECK(zeroMatrix, 1);
 | 
						|
}
 | 
						|
 | 
						|
PERF_TEST_P(Size_MatType, Mat_Clone,
 | 
						|
            testing::Combine(testing::Values(TYPICAL_MAT_SIZES),
 | 
						|
                             testing::Values(TYPICAL_MAT_TYPES))
 | 
						|
 | 
						|
             )
 | 
						|
{
 | 
						|
    Size size = get<0>(GetParam());
 | 
						|
    int type = get<1>(GetParam());
 | 
						|
    Mat source(size.height, size.width, type);
 | 
						|
    Mat destination(size.height, size.width, type);;
 | 
						|
 | 
						|
    declare.in(source, WARMUP_RNG).out(destination);
 | 
						|
 | 
						|
    TEST_CYCLE()
 | 
						|
    {
 | 
						|
        source.clone();
 | 
						|
    }
 | 
						|
    destination = source.clone();
 | 
						|
 | 
						|
    SANITY_CHECK(destination, 1);
 | 
						|
}
 | 
						|
 | 
						|
PERF_TEST_P(Size_MatType, Mat_Clone_Roi,
 | 
						|
            testing::Combine(testing::Values(TYPICAL_MAT_SIZES),
 | 
						|
                             testing::Values(TYPICAL_MAT_TYPES))
 | 
						|
 | 
						|
             )
 | 
						|
{
 | 
						|
    Size size = get<0>(GetParam());
 | 
						|
    int type = get<1>(GetParam());
 | 
						|
 | 
						|
    unsigned int width = size.width;
 | 
						|
    unsigned int height = size.height;
 | 
						|
    Mat source(height, width, type);
 | 
						|
    Mat destination(size.height/2, size.width/2, type);
 | 
						|
 | 
						|
    declare.in(source, WARMUP_RNG).out(destination);
 | 
						|
 | 
						|
    Mat roi(source, Rect(width/4, height/4, 3*width/4, 3*height/4));
 | 
						|
 | 
						|
    TEST_CYCLE()
 | 
						|
    {
 | 
						|
        roi.clone();
 | 
						|
    }
 | 
						|
    destination = roi.clone();
 | 
						|
 | 
						|
    SANITY_CHECK(destination, 1);
 | 
						|
}
 |