public interface Blob
Modifier and Type | Method and Description |
---|---|
int |
area()
Measure the area of the blob, as the total number of pixels in its rows.
|
int[] |
boundaryMedianLevel(Image image)
Get the median level in each channel around the boundary in the given image.
|
int[] |
brightness(Image image)
Measure the integrated detected brightness (NOT the average) in each
channel
|
PointFloat |
densityCentre(Image image)
Calculate centre of the blob with weighting from pixel densities
(brightnesses).
|
BlobFrame |
display(ImFrame srcFrame,
BlobMeas meas)
Display this blob magnified in the given frame.
|
void |
drawBoundary(byte[][] mask,
byte value)
Draw the boundary of the blob in the mask array with the given value.
|
void |
drawBoundary(Image image,
int[] levels)
Draw the boundary of the blob in the given image with the given levels.
|
void |
drawRegion(byte[][] mask,
byte value)
Draw the rows of the blob in the mask array with the given value.
|
void |
drawRegion(Image image,
int[] levels)
Draw the rows of the blob in the given image with the given levels.
|
void |
erase(byte[][] mask)
Erase this blob from a given mask.
|
Blob |
getBackgroundDisc()
For accurate brightness measurement in BlobMenu.
|
java.util.List<java.awt.Point> |
getBoundary() |
Bounds |
getBounds()
Get the bounds of this Blob.
|
Blob |
getBrightnessDisc()
For accurate brightness measurement in BlobMenu.
|
float |
getMeasuringRingSizeFactor()
Get the factor by which the measuring circles in display () are expanded.
|
java.util.List<PointFloat> |
getVerticalCentreLineFromBoundary()
Get a list of the centre points of all horizontal rows that comprise the
blob with a simple shape.
|
java.util.List<PointFloat> |
getVerticalCentreLineFromRegion()
Get a list of the centre points of all horizontal rows that comprise the
blob.
|
boolean |
hasRows()
Whether region comprises at least one row.
|
boolean |
isSaturatedInRegion(Image srcImage)
Whether any pixels in the blob reach the maximum
image level in any channels.
|
boolean |
isSaturatedInRegion(ImFrame srcFrame)
Whether any pixels in the blob reach the maximum
image level in any channels.
|
LineSegment |
longestLine()
Find the two points on the boundary which are furtherst apart from each
other, returning the result as a LineSegment.
|
PointFloat |
maskCentre()
Calculate centre of the blob simply as average of detected x and y, with
no weighting from pixel densities.
|
BlobMeas |
measure(Image image)
Measure brightness, density-weighted centre and area (pixel count)
all on one pass.
|
void |
measureAccurately(BlobMeas meas,
Image image)
Measure meanBackground, accurateBrightnesses and snRatios fields of the
given BlobMeas using backgroundDisc and brightnessDisc in the given frame
(which is assumed to be the parent frame of the magnified blob frame).
The signal-to-noise (S/N) ratio for each channel is measured as (mean (starBrightness) - mean (backgroundBrightness)) / stdDev (backgroundBrightness) where mean (starBrightness) is the accurately measured brightness in the inner disc divided by the number of pixels in that disc. |
void |
measureAccurately(BlobMeas meas,
ImFrame parentFrame)
Measure meanBackground, accurateBrightnesses and snRatios fields of the
given BlobMeas using backgroundDisc and brightnessDisc in the given frame
(which is assumed to be the parent frame of the magnified blob frame).
The signal-to-noise (S/N) ratio for each channel is measured as (mean (starBrightness) - mean (backgroundBrightness)) / stdDev (backgroundBrightness) where mean (starBrightness) is the accurately measured brightness in the inner disc divided by the number of pixels in that disc. |
double |
perimeter()
Measure the perimeter
|
void |
recolourIfSaturated(Image32 im)
First tests isSaturatedInRegion() - if true, looks at the boundary to find
average ratios of bands, then adjusts the saturated pixels upwards to have
the same ratios.
|
void |
remeasureAccurately(BlobMeas meas,
ImFrame parentFrame) |
void |
setMeasuringRingSizeFactor(float factor)
Set the factor by which the measuring circles in display () are expanded.
|
java.lang.StringBuffer |
toXML(java.lang.String indent)
The indent string would typically contain some tab characters (\t).
|
void |
translate(int dx,
int dy)
Move the blob by the given pixel displacement.
|
int area()
int[] boundaryMedianLevel(Image image)
int[] brightness(Image image)
PointFloat densityCentre(Image image)
BlobFrame display(ImFrame srcFrame, BlobMeas meas)
void drawBoundary(Image image, int[] levels)
void drawBoundary(byte[][] mask, byte value)
void drawRegion(Image image, int[] levels)
void drawRegion(byte[][] mask, byte value)
void erase(byte[][] mask)
java.util.List<java.awt.Point> getBoundary()
Blob getBackgroundDisc()
Blob getBrightnessDisc()
float getMeasuringRingSizeFactor()
java.util.List<PointFloat> getVerticalCentreLineFromBoundary()
java.util.List<PointFloat> getVerticalCentreLineFromRegion()
Bounds getBounds()
boolean hasRows()
boolean isSaturatedInRegion(ImFrame srcFrame)
boolean isSaturatedInRegion(Image srcImage)
LineSegment longestLine()
PointFloat maskCentre()
BlobMeas measure(Image image)
void measureAccurately(BlobMeas meas, ImFrame parentFrame)
void measureAccurately(BlobMeas meas, Image image)
double perimeter()
void recolourIfSaturated(Image32 im)
void setMeasuringRingSizeFactor(float factor)
java.lang.StringBuffer toXML(java.lang.String indent)
void translate(int dx, int dy)