Search in sources :

Example 76 with Mat

use of org.bytedeco.opencv.opencv_core.Mat in project qupath by qupath.

the class TypeAdaptersCVTest method testStatModels.

@SuppressWarnings("unchecked")
@Test
public void testStatModels() {
    var gson = new GsonBuilder().registerTypeAdapterFactory(OpenCVTypeAdapters.getOpenCVTypeAdaptorFactory()).create();
    try (PointerScope scope = new PointerScope()) {
        // Create a model with some non-default parameters
        var model = EM.create();
        int nClusters = 4;
        int nIterations = 8;
        var termCrit = new TermCriteria(TermCriteria.COUNT, nIterations, 0);
        model.setClustersNumber(nClusters);
        model.setTermCriteria(termCrit);
        var samples = new Mat(50, 50, opencv_core.CV_32FC1, Scalar.ZERO);
        var one = new Mat(1, 1, opencv_core.CV_32FC1, Scalar.ONE);
        var two = new Mat(1, 1, opencv_core.CV_32FC1, Scalar.all(2.0));
        opencv_core.randn(samples.rowRange(0, 25), one, two);
        opencv_core.randn(samples.rowRange(25, 50), two, one);
        model.trainEM(samples);
        var jsonModel = gson.toJson(model);
        var modelRead = (EM) gson.fromJson(jsonModel, StatModel.class);
        assertNotNull(modelRead);
        assertEquals(nClusters, modelRead.getClustersNumber());
        assertEquals(nIterations, modelRead.getTermCriteria().maxCount());
        var modelRead2 = gson.fromJson(jsonModel, EM.class);
        assertNotNull(modelRead2);
        assertEquals(nClusters, modelRead2.getClustersNumber());
        assertEquals(nIterations, modelRead2.getTermCriteria().maxCount());
    }
}
Also used : SparseMat(org.bytedeco.opencv.opencv_core.SparseMat) Mat(org.bytedeco.opencv.opencv_core.Mat) StatModel(org.bytedeco.opencv.opencv_ml.StatModel) GsonBuilder(com.google.gson.GsonBuilder) EM(org.bytedeco.opencv.opencv_ml.EM) TermCriteria(org.bytedeco.opencv.opencv_core.TermCriteria) PointerScope(org.bytedeco.javacpp.PointerScope) Test(org.junit.jupiter.api.Test)

Aggregations

Mat (org.bytedeco.opencv.opencv_core.Mat)76 Point (org.bytedeco.opencv.opencv_core.Point)23 ArrayList (java.util.ArrayList)15 MatVector (org.bytedeco.opencv.opencv_core.MatVector)15 PointerScope (org.bytedeco.javacpp.PointerScope)14 FloatIndexer (org.bytedeco.javacpp.indexer.FloatIndexer)14 BufferedImage (java.awt.image.BufferedImage)12 IntIndexer (org.bytedeco.javacpp.indexer.IntIndexer)10 Scalar (org.bytedeco.opencv.opencv_core.Scalar)10 Test (org.junit.jupiter.api.Test)10 DoubleIndexer (org.bytedeco.javacpp.indexer.DoubleIndexer)9 Size (org.bytedeco.opencv.opencv_core.Size)9 UByteIndexer (org.bytedeco.javacpp.indexer.UByteIndexer)8 List (java.util.List)7 org.bytedeco.opencv.global.opencv_core (org.bytedeco.opencv.global.opencv_core)7 WritableRaster (java.awt.image.WritableRaster)6 IOException (java.io.IOException)6 Arrays (java.util.Arrays)6 Collections (java.util.Collections)6 Collectors (java.util.stream.Collectors)6