Search in sources :

Example 1 with DoublePoint

use of org.apache.commons.math3.ml.clustering.DoublePoint in project imagingbook-common by imagingbook.

the class KMeansClusteringQuantizerApache method makeColorMap.

private int[][] makeColorMap() {
    List<int[]> colList = new LinkedList<>();
    for (CentroidCluster<DoublePoint> ctr : centers) {
        double[] c = ctr.getCenter().getPoint();
        int red = (int) Math.round(c[0]);
        int grn = (int) Math.round(c[1]);
        int blu = (int) Math.round(c[2]);
        colList.add(new int[] { red, grn, blu });
    }
    return colList.toArray(new int[0][]);
}
Also used : DoublePoint(org.apache.commons.math3.ml.clustering.DoublePoint) LinkedList(java.util.LinkedList) DoublePoint(org.apache.commons.math3.ml.clustering.DoublePoint)

Example 2 with DoublePoint

use of org.apache.commons.math3.ml.clustering.DoublePoint in project imagingbook-common by imagingbook.

the class KMeansClusteringQuantizerApache method cluster.

// --------------------------------------------------------------
private List<CentroidCluster<DoublePoint>> cluster(int[] pixels) {
    KMeansPlusPlusClusterer<DoublePoint> clusterer = new KMeansPlusPlusClusterer<>(params.maxColors, params.maxIterations);
    List<DoublePoint> points = new ArrayList<>();
    for (int i = 0; i < pixels.length; i++) {
        points.add(new DoublePoint(intToRgbDouble(pixels[i])));
    }
    return clusterer.cluster(points);
}
Also used : DoublePoint(org.apache.commons.math3.ml.clustering.DoublePoint) ArrayList(java.util.ArrayList) KMeansPlusPlusClusterer(org.apache.commons.math3.ml.clustering.KMeansPlusPlusClusterer) DoublePoint(org.apache.commons.math3.ml.clustering.DoublePoint)

Example 3 with DoublePoint

use of org.apache.commons.math3.ml.clustering.DoublePoint in project ACManager by kun368.

the class MyTest2 method test6.

@Test
public void test6() throws Exception {
    Clusterer<DoublePoint> clusterer = new KMeansPlusPlusClusterer<DoublePoint>(3);
    List<DoublePoint> list = new ArrayList<>();
    list.add(new DoublePoint(new double[] { 1 }));
    list.add(new DoublePoint(new double[] { 1.5 }));
    list.add(new DoublePoint(new double[] { 1.8 }));
    list.add(new DoublePoint(new double[] { 3.5 }));
    list.add(new DoublePoint(new double[] { 3.6 }));
    list.add(new DoublePoint(new double[] { 4 }));
    list.add(new DoublePoint(new double[] { 4.2 }));
    System.out.println(list);
    List<? extends Cluster<DoublePoint>> res = clusterer.cluster(list);
    System.out.println("!!!");
    System.out.println(res.size());
    for (Cluster<DoublePoint> re : res) {
        System.out.println(re.getPoints());
    }
}
Also used : DoublePoint(org.apache.commons.math3.ml.clustering.DoublePoint) KMeansPlusPlusClusterer(org.apache.commons.math3.ml.clustering.KMeansPlusPlusClusterer) Test(org.junit.Test)

Aggregations

DoublePoint (org.apache.commons.math3.ml.clustering.DoublePoint)3 KMeansPlusPlusClusterer (org.apache.commons.math3.ml.clustering.KMeansPlusPlusClusterer)2 ArrayList (java.util.ArrayList)1 LinkedList (java.util.LinkedList)1 Test (org.junit.Test)1