@Override public void analyseImage(FImage image) { final BlockHistogramModel hm = new BlockHistogramModel(2, 1, nbins); hm.estimateModel(image); final MultidimensionalHistogram left = hm.histograms[0][0]; final MultidimensionalHistogram right = hm.histograms[0][1]; balance = left.compare(right, DoubleFVComparison.CHI_SQUARE); } }
@Override public float classifyPatch(MBFImage patch) { HistogramModel h = new HistogramModel(model.histogram.nbins); h.estimateModel(patch); return (float) model.histogram.compare(h.histogram, compare); }
@Override public float classifyPatch(MBFImage patch) { HistogramModel h = new HistogramModel(model.histogram.nbins); h.estimateModel(patch); return (float) model.histogram.compare(h.histogram, compare); }
@Override public void analyseImage(FImage image) { final BlockHistogramModel hm = new BlockHistogramModel(2, 1, nbins); hm.estimateModel(image); final MultidimensionalHistogram left = hm.histograms[0][0]; final MultidimensionalHistogram right = hm.histograms[0][1]; balance = left.compare(right, DoubleFVComparison.CHI_SQUARE); } }
/** * Main method * * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // Load the image final URL[] imageURLs = new URL[] { new URL("http://openimaj.org/tutorial/figs/hist1.jpg"), new URL("http://openimaj.org/tutorial/figs/hist2.jpg"), new URL("http://openimaj.org/tutorial/figs/hist3.jpg") }; final List<MultidimensionalHistogram> histograms = new ArrayList<MultidimensionalHistogram>(); final HistogramModel model = new HistogramModel(4, 4, 4); for (final URL u : imageURLs) { model.estimateModel(ImageUtilities.readMBF(u)); histograms.add(model.histogram.clone()); } for (int i = 0; i < histograms.size(); i++) { for (int j = i; j < histograms.size(); j++) { final double distance = histograms.get(i).compare(histograms.get(j), DoubleFVComparison.EUCLIDEAN); System.out.println(distance); } } } }