net.sourceforge.jiu.color.quantization

Class RGBColorList

Implemented Interfaces:
RGBIndex

public class RGBColorList
extends java.lang.Object
implements RGBIndex

Holds an array of RGBColor objects.
Author:
Marco Schmidt

Field Summary

private RGBColor[]
list
private int
numEntries

Fields inherited from interface net.sourceforge.jiu.data.RGBIndex

INDEX_BLUE, INDEX_GREEN, INDEX_RED

Constructor Summary

RGBColorList(int NUM_ENTRIES)
Creates a color list with room for a fixed number of entries.
RGBColorList(Histogram3D hist)
Creates a new list and initializes it with the argument histogram.

Method Summary

int[]
findExtrema(int i1, int i2)
In a given interval of the list this method searches for the color axis that has the largest distribution of values.
RGBColor
getColor(int index)
Returns an RGBColor object from this list, given by its zero-based index value.
int
getNumEntries()
Returns the number of color objects in this list.
void
sortByAxis(int index1, int index2, int axis)
Sorts an interval of the array of colors by one of the three components (RGB).
void
sortByCounter(int index1, int index2)
Sorts an interval of the array of colors by their counters.

Field Details

list

private RGBColor[] list

numEntries

private final int numEntries

Constructor Details

RGBColorList

private RGBColorList(int NUM_ENTRIES)
Creates a color list with room for a fixed number of entries.
Parameters:

RGBColorList

public RGBColorList(Histogram3D hist)
Creates a new list and initializes it with the argument histogram. All values from the histogram with a counter larger than zero will be added to the list (which will include all colors that appear at least once in the image on which the histogram was created).
Parameters:
hist - the histogram from which the list will be initialized

Method Details

findExtrema

public int[] findExtrema(int i1,
                         int i2)
In a given interval of the list this method searches for the color axis that has the largest distribution of values. Returns a pair of int values; the first value is the component (0, 1 or 2), the second value is the difference between the minimum and maximum value found in the list. Only checks colors from index i1 to i2 of the list.

getColor

public RGBColor getColor(int index)
Returns an RGBColor object from this list, given by its zero-based index value.
Parameters:
index - zero-based index into the list; must be smaller than getNumEntries()
Returns:
the color object

getNumEntries

public int getNumEntries()
Returns the number of color objects in this list.
Returns:
number of colors in the list

sortByAxis

public void sortByAxis(int index1,
                       int index2,
                       int axis)
Sorts an interval of the array of colors by one of the three components (RGB).

sortByCounter

public void sortByCounter(int index1,
                          int index2)
Sorts an interval of the array of colors by their counters.
Parameters:
index1 - the index of the first element in the interval
index2 - the index of the last element in the interval