package de.lmu.ifi.dbs.elki.application;
/*
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see
* Key: {@code -colorhist.generator} *
*/ public static OptionID COLORHIST_ID = new OptionID("colorhist.generator", "Class that is used to generate a color histogram."); /** * Parameter that specifies the name of the input file. ** Key: {@code -colorhist.in} *
*/ public static final OptionID INPUT_ID = new OptionID("colorhist.in", "Input image file for color histogram."); /** * Parameter that specifies the name of the mask input file. ** Key: {@code -colorhist.mask} *
*/ public static final OptionID MASK_ID = new OptionID("colorhist.mask", "Input mask image file."); /** * Class that will compute the actual histogram */ private ComputeColorHistogram histogrammaker; /** * Input file. */ private File inputFile; /** * Mask file. */ private File maskFile; /** * Constructor. * * @param histogrammaker Class to compute histograms with * @param inputFile Input file * @param maskFile Mask file */ public ComputeSingleColorHistogram(ComputeColorHistogram histogrammaker, File inputFile, File maskFile) { super(); this.histogrammaker = histogrammaker; this.inputFile = inputFile; this.maskFile = maskFile; } @Override public void run() throws UnableToComplyException { double[] hist; try { hist = histogrammaker.computeColorHistogram(inputFile, maskFile); } catch(IOException e) { throw new UnableToComplyException(e); } System.out.println(FormatUtil.format(hist, " ")); } /** * Parameterization class. * * @author Erich Schubert * * @apiviz.exclude */ public static class Parameterizer extends AbstractApplication.Parameterizer { /** * Class that will compute the actual histogram */ private ComputeColorHistogram histogrammaker; /** * Input file. */ private File inputFile; /** * Mask file. */ private File maskFile; @Override protected void makeOptions(Parameterization config) { super.makeOptions(config); final ObjectParameter