WindowFeatures.java
package ac.essex.ooechs.imaging.commons.window.util;
import ac.essex.ooechs.imaging.commons.window.data.WindowImage;
import ac.essex.ooechs.imaging.commons.window.data.Window;
import ac.essex.ooechs.imaging.commons.fast.FastStatistics;
import ac.essex.ooechs.imaging.commons.PixelLoader;
/**
* <p/>
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version,
* provided that any use properly credits the author.
* 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 General Public License for more details at http://www.gnu.org
* </p>
*
* @author Olly Oechsle, University of Essex, Date: 20-Mar-2008
* @version 1.0
*/
public class WindowFeatures {
/**
* @param image
* @return
* @throws Exception If the image can't be loaded.
*/
public static double[] getFeatures(PixelLoader image, Window window) throws Exception {
double[] values = new double[window.width];
// move along the window one pixel at a time and get the summed intensity
for (int wx = 0; wx < window.width; wx++) {
int x = wx + window.x;
FastStatistics total = new FastStatistics();
for (int wy = 0; wy < window.height; wy++) {
int y = wy + window.y;
total.addData(image.getGreyValue(x, y));
}
values[wx] = total.getMean();
}
return values;
}
}