net.sourceforge.jiu.color.analysis
Class TextureAnalysis
public class TextureAnalysis
This class determines a number of properties for a given co-occurrence matrix.
The only input parameter is a mandatory co-occurrence matrix object
to be specified using
setMatrix(CoOccurrenceMatrix)
.
Then
process()
must be called.
After that, the various properties can be retrieved using the
corresponding get methods, e.g.
getContrast()
,
getEnergy()
etc.
Static convenience methods
compute(CoOccurrenceMatrix)
and
compute(IntegerImage,int)
exist for simplified usage.
You may need to cast your
PixelImage
to
IntegerImage
first.
Usage example
Use like that:
GrayIntegerImage img = ...;
TextureAnalysis op = TextureAnalysis.compute(img);
System.out.println("Entropy=" + op.getEntropy());
Use the compute method that takes a
CoOccurrenceFrequencyMatrix
if you want to reuse a matrix object.
Caveat: memory consumption
Will not work with 16 bit image objects because
MemoryCoOccurrenceMatrix
is rather unsophisticated, trying to allocate 4 * 65536 * 65536 bytes (16 GB).
Solution is an implementation of
CoOccurrenceMatrix
which creates element counters on demand.
The following resources were helpful when creating this class:
contrast
private int contrast
correlation
private double correlation
dissimilarity
private int dissimilarity
entropy
private double entropy
homogeneity
private double homogeneity
symmetry
private boolean symmetry
compute
public static TextureAnalysis compute(CoOccurrenceMatrix matrix)
throws MissingParameterException
Create a TextureAnalysis operation with the results computed from a
given matrix.
matrix
- co-occurrence matrix to use for texture analysis
- TextureAnalysis object with all attributes computed
compute
public static TextureAnalysis compute(IntegerImage image,
int channelIndex)
throws MissingParameterException
For one channel of the argument image,
create a TextureAnalysis operation with all attributes
image
- the IntegerImage for which the texture analysis is being donechannelIndex
- zero-based index of channel to work on
- TextureAnalysis object with all attributes computed
getContrast
public int getContrast()
Returns the contrast value determined in
process()
.
Also called
inertia.
getCorrelation
public double getCorrelation()
Returns the correlation determined in
process()
.
getDissimilarity
public int getDissimilarity()
Returns the dissimilarity value determined in
process()
.
getEnergy
public int getEnergy()
Returns the energy value determined in
process()
.
getEntropy
public double getEntropy()
Returns the entropy value determined in
process()
.
getHomogeneity
public double getHomogeneity()
Returns the homogeneity value determined in
process()
.
Also called
inverse difference moment.
getSum
public int getSum()
Returns the sum of all entries in the matrix.
isSymmetrical
public boolean isSymmetrical()
setMatrix
public void setMatrix(CoOccurrenceMatrix m)
Sets the matrix to be used by this operation to the argument value.
m
- the matrix for which the various properties will be computed