001 /* 002 * MinimumFilter 003 * 004 * Copyright (c) 2001, 2002 Marco Schmidt. 005 * All rights reserved. 006 */ 007 008 package net.sourceforge.jiu.filters; 009 010 import net.sourceforge.jiu.filters.AreaFilterOperation; 011 012 /** 013 * Filter operation that replaces each sample by the minimum value of itself 014 * and its neighbors. 015 * See {@link MaximumFilter} for a usage example. 016 * @author Marco Schmidt 017 * @since 0.9.0 018 */ 019 public class MinimumFilter extends AreaFilterOperation 020 { 021 public final int computeSample(int[] samples, int numSamples) 022 { 023 int min = samples[--numSamples]; 024 while (numSamples != 0) 025 { 026 int value = samples[--numSamples]; 027 if (value < min) 028 { 029 min = value; 030 } 031 } 032 return min; 033 } 034 }