~paparazzi-uav/paparazzi/v5.0-manual

« back to all changes in this revision

Viewing changes to sw/ext/opencv_bebop/opencv/modules/imgproc/perf/perf_floodfill.cpp

  • Committer: Paparazzi buildbot
  • Date: 2016-05-18 15:00:29 UTC
  • Revision ID: felix.ruess+docbot@gmail.com-20160518150029-e8lgzi5kvb4p7un9
Manual import commit 4b8bbb730080dac23cf816b98908dacfabe2a8ec from v5.0 branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// This file is part of OpenCV project.
 
2
// It is subject to the license terms in the LICENSE file found in the top-level directory
 
3
// of this distribution and at http://opencv.org/license.html.
 
4
 
 
5
// Copyright (C) 2014, Itseez, Inc., all rights reserved.
 
6
// Third party copyrights are property of their respective owners.
 
7
 
 
8
#include "perf_precomp.hpp"
 
9
 
 
10
using namespace std;
 
11
using namespace cv;
 
12
using namespace perf;
 
13
using namespace testing;
 
14
using std::tr1::make_tuple;
 
15
using std::tr1::get;
 
16
 
 
17
typedef std::tr1::tuple<string, Point, int, int, int, int> Size_Source_Fl_t;
 
18
typedef perf::TestBaseWithParam<Size_Source_Fl_t> Size_Source_Fl;
 
19
 
 
20
PERF_TEST_P(Size_Source_Fl, floodFill1, Combine(
 
21
    testing::Values("cv/shared/fruits.png", "cv/optflow/RubberWhale1.png"), //images
 
22
            testing::Values(Point(120, 82), Point(200, 140)), //seed points
 
23
            testing::Values(4,8), //connectivity
 
24
            testing::Values((int)IMREAD_COLOR, (int)IMREAD_GRAYSCALE), //color image, or not
 
25
            testing::Values(0, 1, 2), //use fixed(1), gradient (2) or simple(0) mode
 
26
            testing::Values((int)CV_8U, (int)CV_32F, (int)CV_32S) //image depth
 
27
            ))
 
28
{
 
29
    //test given image(s)
 
30
    string filename = getDataPath(get<0>(GetParam()));
 
31
    Point pseed;
 
32
    pseed = get<1>(GetParam());
 
33
 
 
34
    int connectivity = get<2>(GetParam());
 
35
    int colorType = get<3>(GetParam());
 
36
    int modeType = get<4>(GetParam());
 
37
    int imdepth = get<5>(GetParam());
 
38
 
 
39
    Mat image0 = imread(filename, colorType);
 
40
 
 
41
    Scalar newval, loVal, upVal;
 
42
    if (modeType == 0)
 
43
    {
 
44
        loVal = Scalar(0, 0, 0);
 
45
        upVal = Scalar(0, 0, 0);
 
46
    }
 
47
    else
 
48
    {
 
49
        loVal = Scalar(4, 4, 4);
 
50
        upVal = Scalar(20, 20, 20);
 
51
    }
 
52
    int newMaskVal = 255;  //base mask for floodfill type
 
53
    int flags = connectivity + (newMaskVal << 8) + (modeType == 1 ? FLOODFILL_FIXED_RANGE : 0);
 
54
 
 
55
    int b = 152;//(unsigned)theRNG() & 255;
 
56
    int g = 136;//(unsigned)theRNG() & 255;
 
57
    int r = 53;//(unsigned)theRNG() & 255;
 
58
    newval = (colorType == IMREAD_COLOR) ? Scalar(b, g, r) : Scalar(r*0.299 + g*0.587 + b*0.114);
 
59
 
 
60
    Rect outputRect = Rect();
 
61
    Mat source = Mat();
 
62
 
 
63
    for (;  next(); )
 
64
    {
 
65
        image0.convertTo(source, imdepth);
 
66
        startTimer();
 
67
        cv::floodFill(source, pseed, newval, &outputRect, loVal, upVal, flags);
 
68
        stopTimer();
 
69
    }
 
70
    EXPECT_EQ(image0.cols, source.cols);
 
71
    EXPECT_EQ(image0.rows, source.rows);
 
72
    SANITY_CHECK_NOTHING();
 
73
}