net.sourceforge.jiu.color.analysis
Class Histogram1DCreator
public class Histogram1DCreator
This class creates one-dimensional histograms for images with integer samples.
Only
IntegerImage
objects are supported.
Existing histogram objects can be given to this operation to be reused.
Give an existing
Histogram1D
object to this operation via
setHistogram(Histogram1D)
.
The histogram can be created for any channel of an IntegerImage.
The first channel (index 0) is the default channel.
Use
setImage(IntegerImage,int)
to specify another one.
Note: Before JIU 0.10.0 there was a single HistogramCreator class.
Usage example
Creates a histogram for the third channel of an image, whose index is two
because channels are zero-based:
Histogram1DCreator hc = new Histogram1DCreator();
hc.setImage(image, 2);
hc.process();
Histogram1D hist = hc.getHistogram();
If you just want to learn the number of different samples in an image,
there's a static convenience method count for that. Again, we use the
third channel:
Integer numUsedSamples = Histogram1DCreator.count(image, 2);
static Integer | count(IntegerImage image) - Static convenience method to count the number of different samples
in the first channel of the argument image.
|
static Integer | count(IntegerImage image, int channelIndex) - Static convenience method to count the number of different samples
in one of the channels of the argument image.
|
private void | createHistogramIfNecessary()
|
Histogram1D | getHistogram() - Returns the histogram used in this operation.
|
void | process() - This method does the actual work of the operation.
|
void | setHistogram(Histogram1D histogram) - Sets a histogram object to be used for this operation.
|
void | setImage(IntegerImage newImage) - Set the image for which the histogram is to be initialized.
|
void | setImage(IntegerImage newImage, int imageChannelIndex) - Set the image and the channel index for which the histogram is to be initialized.
|
channelIndex
private int channelIndex
count
public static Integer count(IntegerImage image)
Static convenience method to count the number of different samples
in the first channel of the argument image.
image
- the IntegerImage to be examined
- the number of different values or null on failure
(image is
null
, histogram data structure could not
be allocated)
count
public static Integer count(IntegerImage image,
int channelIndex)
Static convenience method to count the number of different samples
in one of the channels of the argument image.
image
- the IntegerImage to be examinedchannelIndex
- the zero-based index of the channel to use
- the number of different values or null on failure
(image is
null
, channel index is invalid,
histogram data structure could not be allocated)
createHistogramIfNecessary
private void createHistogramIfNecessary()
getHistogram
public Histogram1D getHistogram()
Returns the histogram used in this operation.
- histogram object, newly-created or reused one
setHistogram
public void setHistogram(Histogram1D histogram)
Sets a histogram object to be used for this operation.
Within
process()
it will be checked if this histogram is large enough
for the image.
setImage
public void setImage(IntegerImage newImage)
Set the image for which the histogram is to be initialized.
The first channel (index 0) is used by default.
newImage
- image object to be used
setImage
public void setImage(IntegerImage newImage,
int imageChannelIndex)
Set the image and the channel index for which the histogram is to be initialized.
newImage
- image object to be usedimageChannelIndex
- must not be negative and must be smaller than newImage.getNumChannels()