/** * Estimate a multidimensional Gaussian from the data * * @param samples * the data * @return the Gaussian with the best fit to the data */ public static MultivariateGaussian estimate(Matrix samples) { return estimate(samples.getArray()); }
@Override public void learnModel(MBFImage... images) { final List<float[]> data = new ArrayList<float[]>(); for (int i = 0; i < images.length; i++) { for (int y = 0; y < images[i].getHeight(); y++) { for (int x = 0; x < images[i].getWidth(); x++) { final float[] d = new float[ndims]; for (int j = 0; j < ndims; j++) { d[j] = images[i].getBand(j).pixels[y][x]; } data.add(d); } } } final float[][] arraydata = data.toArray(new float[data.size()][ndims]); gauss = CachingMultivariateGaussian.estimate(arraydata); }
@Override public void learnModel(MBFImage... images) { final List<float[]> data = new ArrayList<float[]>(); for (int i = 0; i < images.length; i++) { for (int y = 0; y < images[i].getHeight(); y++) { for (int x = 0; x < images[i].getWidth(); x++) { final float[] d = new float[ndims]; for (int j = 0; j < ndims; j++) { d[j] = images[i].getBand(j).pixels[y][x]; } data.add(d); } } } final float[][] arraydata = data.toArray(new float[data.size()][ndims]); gauss = CachingMultivariateGaussian.estimate(arraydata); }