1 | #include "opencv2/core/core.hpp"
|
2 | #include "opencv2/ml/ml.hpp"
|
3 |
|
4 | using namespace cv;
|
5 |
|
6 | int main()
|
7 | {
|
8 | Mat_<float> trainingSet1( Size( 2, 25 ) );
|
9 | Mat_<int> response1( Size( 1, 25 ) );
|
10 | Mat_<float> trainingSet2( Size( 2, 25 ) );
|
11 | Mat_<int> response2( Size( 1, 25 ) );
|
12 | Mat_<float> sample( Size( 2, 1000 ) );
|
13 |
|
14 | RNG rng = RNG( (int) time(0) );
|
15 |
|
16 |
|
17 | for( size_t i = 0; i < trainingSet1.rows; i++ )
|
18 | {
|
19 | for( size_t j = 0; j < trainingSet1.cols; j++ )
|
20 | {
|
21 | float x = rng.uniform( 0, 1000 );
|
22 | trainingSet1( i, j ) = x;
|
23 | }
|
24 | }
|
25 | for( size_t i = 0; i < trainingSet2.rows; i++ )
|
26 | {
|
27 | for( size_t j = 0; j < trainingSet2.cols; j++ )
|
28 | {
|
29 | float x = rng.uniform( 0, 1000 );
|
30 | trainingSet2( i, j ) = x;
|
31 | }
|
32 | }
|
33 | for( size_t i = 0; i < response1.rows; i++ )
|
34 | {
|
35 | int x = rng.uniform( 0, 2 );
|
36 | response1( i, 1 ) = x;
|
37 | }
|
38 | for( size_t i = 0; i < response2.rows; i++ )
|
39 | {
|
40 | int x = rng.uniform( 0, 2 );
|
41 | response2( i, 1 ) = x;
|
42 | }
|
43 |
|
44 |
|
45 |
|
46 | Mat var_types1( 1, trainingSet1.cols + 1, CV_8UC1, Scalar( CV_VAR_ORDERED ) );
|
47 | var_types1.at<uchar>( trainingSet1.cols ) = CV_VAR_CATEGORICAL;
|
48 |
|
49 | Mat var_types2( 1, trainingSet2.cols + 1, CV_8UC1, Scalar( CV_VAR_ORDERED ) );
|
50 | var_types2.at<uchar>( trainingSet2.cols ) = CV_VAR_CATEGORICAL;
|
51 |
|
52 | CvBoostParams params( CvBoost::REAL,
|
53 | 25,
|
54 | 0.8,
|
55 | 1,
|
56 | false,
|
57 | 0
|
58 | );
|
59 | CvBoost boostModel;
|
60 |
|
61 |
|
62 |
|
63 | boostModel.train( trainingSet1, CV_ROW_SAMPLE, response1, Mat(), Mat(), var_types1, Mat(), params, false );
|
64 |
|
65 |
|
66 | for( size_t i = 0; i < sample.rows; i++ )
|
67 | {
|
68 | boostModel.predict( sample.row(i), Mat(), Range::all(), false, true );
|
69 | }
|
70 |
|
71 |
|
72 | boostModel.train( trainingSet2, CV_ROW_SAMPLE, response2, Mat(), Mat(), var_types2, Mat(), params, true );
|
73 |
|
74 |
|
75 | }
|