|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.grelf.grip.Blob_
public class Blob_
Representing the shape of a contiguous set of pixels which have been detected in an image. The shape is described by a list of points defining the boundary together with a list of horizontal lines (of type Blob.BlobRow) defining the area enclosed by the boundary. This double description is to facilitate drawing and measuring the object.
This class also contains a static method for detecting a list of Blobs from a mask, such as would have been set by thresholding - see class ImThreshRGBDialogue.
| Nested Class Summary | |
|---|---|
protected static class |
Blob_.BlobRow
|
| Constructor Summary | |
|---|---|
Blob_(int x,
int y)
Construct a 1-pixel blob at (x, y) - for a detected pixel with no neighbours. |
|
Blob_(java.util.List<java.awt.Point> aBoundary,
byte[][] mask)
Construct a Blob from a boundary (list of points) and a mask. |
|
| Method Summary | |
|---|---|
int |
area()
Measure the area of the blob, as the total number of pixels in its rows. |
int[] |
brightness(java.awt.image.BufferedImage image)
Measure the integrated detected brightness (NOT the average) in each channel |
PointFloat |
densityCentre(java.awt.image.BufferedImage im)
Calculate the 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(java.awt.image.BufferedImage image,
int[] rgb)
Draw the boundary of the blob in the given image with the given RGB levels. |
void |
drawBoundary(byte[][] mask,
byte value)
Draw the boundary of the blob in the mask array with the given value. |
void |
drawRegion(java.awt.image.BufferedImage image,
int[] rgb)
Draw the rows of the blob in the given image with the given RGB levels. |
void |
drawRegion(byte[][] mask,
byte value)
Draw the rows of the blob in the mask array with the given value. |
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. |
protected java.util.List<Blob_.BlobRow> |
getRegion()
|
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. |
PointFloat |
maskCentre()
Calculate the 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. |
protected void |
nullRows()
Available for saving memory if the boundary has to be kept but we no longer need the region. |
double |
perimeter()
Measure the perimeter of the blob as the length of its boundary vectors. |
void |
remeasureAccurately(BlobMeas meas,
ImFrame parentFrame)
|
void |
setMeasuringRingSizeFactor(float factor)
Set the factor by which the measuring circles in display () are expanded. |
java.lang.String |
toString()
Get a simple description of the Blob |
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. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public Blob_(java.util.List<java.awt.Point> aBoundary,
byte[][] mask)
public Blob_(int x,
int y)
| Method Detail |
|---|
public java.util.List<java.awt.Point> getBoundary()
getBoundary in interface Blobprotected java.util.List<Blob_.BlobRow> getRegion()
protected void nullRows()
public boolean hasRows()
Blob
hasRows in interface Blobpublic Blob getBrightnessDisc()
getBrightnessDisc in interface Blobpublic Blob getBackgroundDisc()
getBackgroundDisc in interface Blobpublic java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.StringBuffer toXML(java.lang.String indent)
toXML in interface Blobpublic java.util.List<PointFloat> getVerticalCentreLineFromBoundary()
getVerticalCentreLineFromBoundary in interface Blobpublic java.util.List<PointFloat> getVerticalCentreLineFromRegion()
getVerticalCentreLineFromRegion in interface Blobpublic void erase(byte[][] mask)
erase in interface Blobpublic Bounds getBounds()
getBounds in interface Blob
public void drawBoundary(java.awt.image.BufferedImage image,
int[] rgb)
drawBoundary in interface Blob
public void drawBoundary(byte[][] mask,
byte value)
drawBoundary in interface Blob
public void drawRegion(java.awt.image.BufferedImage image,
int[] rgb)
drawRegion in interface Blob
public void drawRegion(byte[][] mask,
byte value)
drawRegion in interface Blobpublic int[] brightness(java.awt.image.BufferedImage image)
brightness in interface Blobpublic int area()
area in interface Blobpublic double perimeter()
perimeter in interface Blobpublic PointFloat maskCentre()
maskCentre in interface Blobpublic PointFloat densityCentre(java.awt.image.BufferedImage im)
densityCentre in interface Blobpublic BlobMeas measure(Image image)
measure in interface Blob
public void remeasureAccurately(BlobMeas meas,
ImFrame parentFrame)
remeasureAccurately in interface Blob
public void measureAccurately(BlobMeas meas,
ImFrame parentFrame)
measureAccurately in interface Blob
public void measureAccurately(BlobMeas meas,
Image image)
Blob
measureAccurately in interface Blobpublic float getMeasuringRingSizeFactor()
getMeasuringRingSizeFactor in interface Blobpublic void setMeasuringRingSizeFactor(float factor)
setMeasuringRingSizeFactor in interface Blob
public BlobFrame display(ImFrame srcFrame,
BlobMeas meas)
display in interface Blob
public void translate(int dx,
int dy)
translate in interface Blob
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||