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; 
 
    } 
 
}