public class Histogram1d<T> extends Object implements Img<LongType>
Note: the last three classifications may not be present depending upon the makeup of the input data.
Constructor and Description |
---|
Histogram1d(BinMapper1d<T> mapper)
Construct a histogram from a bin mapping algorithm.
|
Histogram1d(Histogram1d<T> other)
Construct a histogram whose bin mappings match another histogram.
|
Histogram1d(Iterable<T> data,
BinMapper1d<T> mapper)
Construct a histogram from an iterable set of data and a bin mapping
algorithm.
|
Modifier and Type | Method and Description |
---|---|
void |
addData(Iterable<T> data)
Counts additional data contained in a given iterable collection.
|
Histogram1d<T> |
copy() |
void |
countData(Iterable<T> data)
Counts the data contained in the given data source using the underlying
bin distribution.
|
Cursor<LongType> |
cursor()
Returns a
RealCursor that iterates with optimal speed without
calculating the location at each iteration step. |
void |
decrement(long binPos)
Directly decrement a bin by position.
|
void |
decrement(T value)
Directly decrement a bin by value,
|
DiscreteFrequencyDistribution |
dfd()
Get the discrete frequency distribution associated with this histogram.
|
long |
dimension(int d)
Return the size of the given dimension of the frequency distribution of
this histogram.
|
void |
dimensions(long[] dims)
Fill the provided long[] with the sizes of all dimensions of the
frequency distribution of this histogram.
|
long |
distributionCount()
Returns the frequency count of all values in the distribution: lower tail
+ middle + upper tail.
|
ImgFactory<LongType> |
factory()
Get a
ImgFactory that creates Img s of the same kind as
this one. |
T |
firstDataValue()
Returns the first data value of the input iteration.
|
LongType |
firstElement()
Get the first element of this
IterableRealInterval . |
long |
frequency(long binPos)
Returns the frequency count of the values within a bin.
|
long |
frequency(T value)
Returns the frequency count of values within a bin using a representative
value.
|
long |
getBinCount()
Returns the number of bins contained in the histogram.
|
void |
getCenterValue(long binPos,
T value)
Gets the value associated with the center of a bin.
|
void |
getLowerBound(long binPos,
T value)
Gets the value associated with the left edge of a bin.
|
void |
getUpperBound(long binPos,
T value)
Gets the value associated with the right edge of the bin.
|
boolean |
hasTails()
Returns true if the histogram has tail bins at both ends which count
extreme values.
|
long |
ignoredCount()
Returns the frequency count of values that were ignored because they
could not be mapped to any bin.
|
boolean |
includesLowerBound(long binPos)
Returns true if the given bin interval is closed on the left
|
boolean |
includesUpperBound(long binPos)
Returns true if the given bin interval is closed on the right
|
void |
increment(long binPos)
Directly increment a bin by position.
|
void |
increment(T value)
Directly increment a bin by value.
|
boolean |
isInLowerTail(T value)
Returns true if a given value is mapped to the lower tail of the
distribution.
|
boolean |
isInMiddle(T value)
Returns true if a given value is mapped to the middle of the
distribution.
|
boolean |
isInUpperTail(T value)
Returns true if a given value is mapped to the upper tail of the
distribution.
|
boolean |
isOutside(T value)
Returns true if a given value is outside the distribution.
|
Object |
iterationOrder()
Returns the iteration order of this
IterableRealInterval . |
Iterator<LongType> |
iterator() |
Cursor<LongType> |
localizingCursor()
Returns a
RealLocalizable Iterator that calculates its
location at each iteration step. |
long |
lowerTailCount()
Returns the frequency count of values in the lower tail bin (if any).
|
long |
map(T value)
Returns a bin position by mapping from a representative value.
|
long |
max() |
long |
max(int d)
Get the maximum in dimension d.
|
void |
max(long[] max)
Write the maximum of each dimension into long[].
|
void |
max(Positionable max)
Sets a
Positionable to the maximum of this Interval |
long |
min() |
long |
min(int d)
Get the minimum in dimension d.
|
void |
min(long[] min)
Write the minimum of each dimension into long[].
|
void |
min(Positionable min)
Sets a
Positionable to the minimum of this Interval |
int |
numDimensions()
Return the number of dimensions of the frequency distribution of this
histogram.
|
RandomAccess<LongType> |
randomAccess()
Create a random access sampler for integer coordinates.
|
RandomAccess<LongType> |
randomAccess(Interval interval)
Create a random access sampler for integer coordinates.
|
double |
realMax() |
void |
realMax(double[] max)
Write the maximum of each dimension into double[].
|
double |
realMax(int d)
Default implementation of
RealInterval.realMax(int) . |
void |
realMax(RealPositionable max)
Sets a
RealPositionable to the maximum of this Interval |
double |
realMin() |
void |
realMin(double[] min)
Write the minimum of each dimension into double[].
|
double |
realMin(int d)
Default implementation of
RealInterval.realMin(int) . |
void |
realMin(RealPositionable min)
Sets a
RealPositionable to the minimum of this Interval |
double |
relativeFrequency(long binPos,
boolean includeTails)
Returns the relative frequency of values within a bin.
|
double |
relativeFrequency(T value,
boolean includeTails)
Returns the relative frequency of values within a bin using a
representative value.
|
void |
resetCounters()
Resets all data counts to 0.
|
long |
size()
Returns the number of elements in this
Function . |
void |
subtractData(Iterable<T> data)
Uncounts some original data contained in a given iterable collection.
|
long[] |
toLongArray()
Returns a bare long[] histogram with the same bin counts as this
histogram.
|
long |
totalCount()
Returns the total count of all values observed; both within and without
the entire distribution.
|
long |
upperTailCount()
Returns the frequency count of values in the upper tail bin (if any).
|
long |
valueCount()
Returns the frequency count of all values in the middle of the
distribution.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getAt, getAt, getAt
forEach, spliterator
maxAsLongArray, maxAsPoint, minAsLongArray, minAsPoint
maxAsDoubleArray, maxAsRealPoint, minAsDoubleArray, minAsRealPoint
allPositive, allPositive, dimensions, dimensionsAsLongArray, dimensionsAsPoint, verify, verify, verifyAllPositive, verifyAllPositive
public Histogram1d(BinMapper1d<T> mapper)
mapper
- The algorithm used to map values to binspublic Histogram1d(Histogram1d<T> other)
other
- The histogram to copy.public Histogram1d(Iterable<T> data, BinMapper1d<T> mapper)
data
- The iterable set of values to calculate uponmapper
- The algorithm used to map values to binspublic T firstDataValue()
public boolean hasTails()
public long lowerTailCount()
public long upperTailCount()
public long valueCount()
public long distributionCount()
public long ignoredCount()
public long totalCount()
public long frequency(T value)
value
- A representative value of interestpublic long frequency(long binPos)
public double relativeFrequency(T value, boolean includeTails)
This calculation is of the number of values in the bin divided by either the number of values in the distribution or the number of values in the center of the distribution (tails ignored).
One can devise other ways to count relative frequencies that consider ignored values also. If needed one can use the various count methods and frequency methods to calculate any relative frequency desired.
value
- A representative value of interestincludeTails
- Flag for determining whether to include tails in calculation.public double relativeFrequency(long binPos, boolean includeTails)
This calculation is of the number of values in the bin divided by either the number of values in the distribution or the number of values in the center of the distribution (tails ignored).
One can devise other ways to count relative frequencies that consider ignored values also. If needed one can use the various count methods and frequency methods to calculate any relative frequency desired.
binPos
- The position of the bin of interestincludeTails
- Flag for determining whether to include tails in calculation.public long getBinCount()
public long map(T value)
public void getCenterValue(long binPos, T value)
binPos
- The bin number of interestvalue
- The output to fill with the center valuepublic void getLowerBound(long binPos, T value)
binPos
- The bin number of interestvalue
- The output to fill with the left edge valuepublic void getUpperBound(long binPos, T value)
binPos
- The bin number of interestvalue
- The output to fill with the right edge valuepublic boolean includesUpperBound(long binPos)
binPos
- The bin number of the interval of interestpublic boolean includesLowerBound(long binPos)
binPos
- The bin number of the interval of interestpublic boolean isInLowerTail(T value)
value
- The value to determine the location ofpublic boolean isInUpperTail(T value)
value
- The value to determine the location ofpublic boolean isInMiddle(T value)
value
- The value to determine the location ofpublic boolean isOutside(T value)
value
- The value to determine the location ofpublic DiscreteFrequencyDistribution dfd()
public void countData(Iterable<T> data)
data
- The total data to countpublic void addData(Iterable<T> data)
data
- The new data to countpublic void subtractData(Iterable<T> data)
data
- The old data to uncountpublic void increment(long binPos)
binPos
- The 1-d index of the binpublic void decrement(long binPos)
binPos
- The 1-d index of the binpublic void increment(T value)
value
- The value to map to a bin positionpublic void decrement(T value)
value
- The value to map to a bin positionpublic void resetCounters()
public long[] toLongArray()
public int numDimensions()
numDimensions
in interface EuclideanSpace
public long dimension(int d)
dimension
in interface Dimensions
dimension
in interface Interval
public void dimensions(long[] dims)
dimensions
in interface Dimensions
public RandomAccess<LongType> randomAccess()
RandomAccessible
The returned random access covers as much of the domain as possible.
Please note:RandomAccessibleInterval
s have a finite domain (their Interval
),
so RandomAccessible.randomAccess()
is only guaranteed to cover this finite domain.
This may lead to unexpected results when using Views
. In
the following code
RandomAccessible<T> extended = Views.extendBorder( img ) RandomAccessibleInterval<T> cropped = Views.interval( extended, img ); RandomAccess<T> a1 = extended.randomAccess(); RandomAccess<T> a2 = cropped.randomAccess();The
access
a1
on the extended image is valid
everywhere. However, somewhat counter-intuitively, the
access
a2
on the extended and cropped image
is only valid on the interval img
to which the extended image was
cropped. The access is only required to cover this interval, because it
is the domain of the cropped image. Views
attempts to provide the
fastest possible access that meets this requirement, and will therefore
strip the extension.
To deal with this, if you know that you need to access pixels outside the
domain of the RandomAccessibleInterval
, and you know that the
RandomAccessibleInterval
is actually defined beyond its interval
boundaries, then use the RandomAccessible.randomAccess(Interval)
variant and
specify which interval you actually want to access. In the above example,
RandomAccess<T> a2 = cropped.randomAccess( Intervals.expand( img, 10 ) );will provide the extended access as expected.
randomAccess
in interface RandomAccessible<LongType>
public RandomAccess<LongType> randomAccess(Interval interval)
RandomAccessible
The returned random access is intended to be used in the specified
interval only. Thus, the RandomAccessible may provide optimized versions.
If the interval is completely contained in the domain, the random access
is guaranteed to provide the same values as that obtained by
RandomAccessible.randomAccess()
within the interval.
randomAccess
in interface RandomAccessible<LongType>
interval
- in which interval you intend to use the random access.public long min()
public long min(int d)
Interval
public void min(long[] min)
Interval
public void min(Positionable min)
Interval
Positionable
to the minimum of this Interval
public long max()
public long max(int d)
Interval
public void max(long[] max)
Interval
public void max(Positionable max)
Interval
Positionable
to the maximum of this Interval
public double realMin()
public double realMin(int d)
Interval
RealInterval.realMin(int)
.realMin
in interface Interval
realMin
in interface RealInterval
d
- dimensionpublic void realMin(double[] min)
RealInterval
realMin
in interface RealInterval
public void realMin(RealPositionable min)
RealInterval
RealPositionable
to the minimum of this Interval
realMin
in interface RealInterval
public double realMax()
public double realMax(int d)
Interval
RealInterval.realMax(int)
.realMax
in interface Interval
realMax
in interface RealInterval
d
- dimensionpublic void realMax(double[] max)
RealInterval
realMax
in interface RealInterval
public void realMax(RealPositionable max)
RealInterval
RealPositionable
to the maximum of this Interval
realMax
in interface RealInterval
public Cursor<LongType> cursor()
IterableRealInterval
Returns a RealCursor
that iterates with optimal speed without
calculating the location at each iteration step. Localization is
performed on demand.
Use this where localization is required rarely/ not for each iteration.
cursor
in interface IterableInterval<LongType>
cursor
in interface IterableRealInterval<LongType>
public Cursor<LongType> localizingCursor()
IterableRealInterval
Returns a RealLocalizable
Iterator
that calculates its
location at each iteration step. That is, localization is performed with
optimal speed.
Use this where localization is required often/ for each iteration.
localizingCursor
in interface IterableInterval<LongType>
localizingCursor
in interface IterableRealInterval<LongType>
public long size()
IterableRealInterval
Returns the number of elements in this Function
.
size
in interface IterableRealInterval<LongType>
public LongType firstElement()
IterableRealInterval
IterableRealInterval
. This is a
shortcut for cursor().next()
.
This can be used to create a new variable of type T using
firstElement().createVariable()
, which is useful in generic
methods to store temporary results, e.g., a running sum over pixels in
the IterableRealInterval
.firstElement
in interface IterableRealInterval<LongType>
public Object iterationOrder()
IterableRealInterval
IterableRealInterval
. If the
returned object equals (Object.equals(Object)
) the iteration
order of another IterableRealInterval
f then they can be
copied by synchronous iteration. That is, having an Iterator
on
this and another Iterator
on f, moving both in synchrony
will point both of them to corresponding locations in their source
domain. In other words, this and f have the same iteration order
and means and the same number of elements.iterationOrder
in interface IterableRealInterval<LongType>
IterableRealInterval
.FlatIterationOrder
public ImgFactory<LongType> factory()
Img
ImgFactory
that creates Img
s of the same kind as
this one.
This is useful to create Imgs for temporary storage in generic methods
where the specific Img type is unknown. Note, that the factory can be
used even if all references to this Img have been invalidated.Copyright © 2015–2022 ImgLib2. All rights reserved.