Package be.panako.util
Class LemireMinMaxFilter
java.lang.Object
be.panako.util.LemireMinMaxFilter
public class LemireMinMaxFilter
extends java.lang.Object
Implementation of a min-max filter algorithm described in "Streaming Maximum-Minimum Filter Using No More than 3 Comparisons per Element".
It is based on the c++ code by Daniel Lemire, provided under the GPLv2.
- Author:
- Joren Six, Daniel Lemire
-
Constructor Summary
Constructors Constructor Description LemireMinMaxFilter(int windowSize, int dataLength, boolean clampEdges)Create a new min-max filter. -
Method Summary
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
LemireMinMaxFilter
public LemireMinMaxFilter(int windowSize, int dataLength, boolean clampEdges)Create a new min-max filter.- Parameters:
windowSize- The size of the window, if clampEdges is true this should be odd.dataLength- The length of the data to filterclampEdges- If true the length of the resulting filtered values is as long as the data. Otherwise the length of the filtered values isdata.length - windowsize/2 + 1. The data is extended with the values at the edges to make this possible.
-
-
Method Details
-
getMinVal
public float[] getMinVal() -
getMaxVal
public float[] getMaxVal() -
maxFilter
public void maxFilter(float[] array, float[] maxFiltered)Run only a max filter. The resulting filtered data is stored in maxFiltered- Parameters:
array- the data to filter. It should have the same length as given in the constructor.maxFiltered- the data to filter. It should have the same length as the data array
-
filter
public void filter(float[] array)Run the filter. The resulting filtered data can requested by calling getMaxVal() and getMinVal().- Parameters:
array- the data to filter. It should have the same length as given in the constructor.
-
main
public static void main(java.lang.String... args)
-