Blame view

3rdparty/opencv-4.5.4/modules/ml/misc/java/test/MLTest.java 1.25 KB
f4334277   Hu Chunming   提交3rdparty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  package org.opencv.test.ml;
  
  import org.opencv.ml.Ml;
  import org.opencv.ml.SVM;
  import org.opencv.core.Mat;
  import org.opencv.core.MatOfFloat;
  import org.opencv.core.MatOfInt;
  import org.opencv.core.CvType;
  import org.opencv.test.OpenCVTestCase;
  import org.opencv.test.OpenCVTestRunner;
  
  public class MLTest extends OpenCVTestCase {
  
      public void testSaveLoad() {
          Mat samples = new MatOfFloat(new float[] {
              5.1f, 3.5f, 1.4f, 0.2f,
              4.9f, 3.0f, 1.4f, 0.2f,
              4.7f, 3.2f, 1.3f, 0.2f,
              4.6f, 3.1f, 1.5f, 0.2f,
              5.0f, 3.6f, 1.4f, 0.2f,
              7.0f, 3.2f, 4.7f, 1.4f,
              6.4f, 3.2f, 4.5f, 1.5f,
              6.9f, 3.1f, 4.9f, 1.5f,
              5.5f, 2.3f, 4.0f, 1.3f,
              6.5f, 2.8f, 4.6f, 1.5f
          }).reshape(1, 10);
          Mat responses = new MatOfInt(new int[] {
              0, 0, 0, 0, 0, 1, 1, 1, 1, 1
          }).reshape(1, 10);
          SVM saved = SVM.create();
          assertFalse(saved.isTrained());
  
          saved.train(samples, Ml.ROW_SAMPLE, responses);
          assertTrue(saved.isTrained());
  
          String filename = OpenCVTestRunner.getTempFileName("yml");
          saved.save(filename);
          SVM loaded = SVM.load(filename);
          assertTrue(loaded.isTrained());
      }
  
  }