public class DetectCircularSymmetry extends CvStage
Modifier and Type | Class and Description |
---|---|
static class |
DetectCircularSymmetry.ScoreRange |
static class |
DetectCircularSymmetry.SymmetryCircle |
static class |
DetectCircularSymmetry.SymmetryScore |
CvStage.CvStageBeanInfo, CvStage.Result
Constructor and Description |
---|
DetectCircularSymmetry() |
Modifier and Type | Method and Description |
---|---|
static java.util.List<CvStage.Result.Circle> |
findCircularSymmetry(Mat image,
int xCenter,
int yCenter,
int minDiameter,
int maxDiameter,
int searchDiameter,
int searchWidth,
int searchHeight,
int maxTargetCount,
double minSymmetry,
double corrSymmetry,
int subSampling,
int superSampling,
DetectCircularSymmetry.SymmetryScore symmetryScore,
boolean diagnostics,
boolean heatMap,
DetectCircularSymmetry.ScoreRange scoreRange)
Find the circle that has its center at the greatest circular symmetry in the given image,
indicating the largest contrast edge as its diameter.
|
double |
getCorrSymmetry() |
double |
getInnerMargin() |
int |
getMaxDiameter() |
int |
getMaxDistance() |
int |
getMaxTargetCount() |
int |
getMinDiameter() |
double |
getMinSymmetry() |
double |
getOuterMargin() |
java.lang.String |
getPropertyName() |
int |
getSearchHeight() |
int |
getSearchWidth() |
int |
getSubSampling() |
int |
getSuperSampling() |
DetectCircularSymmetry.SymmetryScore |
getSymmetryScore() |
boolean |
isDiagnostics() |
boolean |
isHeatMap() |
CvStage.Result |
process(CvPipeline pipeline)
Perform an operation in a pipeline.
|
void |
setCorrSymmetry(double corrSymmetry) |
void |
setDiagnostics(boolean diagnostics) |
void |
setHeatMap(boolean heatMap) |
void |
setInnerMargin(double innerMargin) |
void |
setMaxDiameter(int maxDiameter) |
void |
setMaxDistance(int maxDistance) |
void |
setMaxTargetCount(int maxTargetCount) |
void |
setMinDiameter(int minDiameter) |
void |
setMinSymmetry(double minSymmetry) |
void |
setOuterMargin(double outerMargin) |
void |
setPropertyName(java.lang.String propertyName) |
void |
setSearchHeight(int searchHeight) |
void |
setSearchWidth(int searchWidth) |
void |
setSubSampling(int subSampling) |
void |
setSuperSampling(int superSampling) |
void |
setSymmetryScore(DetectCircularSymmetry.SymmetryScore symmetryScore) |
protected static java.util.List<DetectCircularSymmetry.SymmetryCircle> |
sortAndLimit(java.util.List<DetectCircularSymmetry.SymmetryCircle> circles,
int maxTargetCount,
double corrSymmetry) |
customizePropertySheet, getBeanInfo, getCategory, getDescription, getDescription, getLengthUnit, getName, getPossiblePipelinePropertyOverride, getPossiblePipelinePropertyOverride, isEnabled, recordPropertyOverride, setEnabled, setName
public int getMinDiameter()
public void setMinDiameter(int minDiameter)
public int getMaxDiameter()
public void setMaxDiameter(int maxDiameter)
public int getMaxDistance()
public void setMaxDistance(int maxDistance)
public int getSearchWidth()
public void setSearchWidth(int searchWidth)
public int getSearchHeight()
public void setSearchHeight(int searchHeight)
public double getMinSymmetry()
public void setMinSymmetry(double minSymmetry)
public int getSubSampling()
public void setSubSampling(int subSampling)
public int getSuperSampling()
public void setSuperSampling(int superSampling)
public boolean isDiagnostics()
public void setDiagnostics(boolean diagnostics)
public boolean isHeatMap()
public void setHeatMap(boolean heatMap)
public java.lang.String getPropertyName()
public void setPropertyName(java.lang.String propertyName)
public double getOuterMargin()
public void setOuterMargin(double outerMargin)
public double getInnerMargin()
public void setInnerMargin(double innerMargin)
public int getMaxTargetCount()
public void setMaxTargetCount(int maxTargetCount)
public double getCorrSymmetry()
public void setCorrSymmetry(double corrSymmetry)
public DetectCircularSymmetry.SymmetryScore getSymmetryScore()
public void setSymmetryScore(DetectCircularSymmetry.SymmetryScore symmetryScore)
public CvStage.Result process(CvPipeline pipeline) throws java.lang.Exception
CvStage
process
in class CvStage
java.lang.Exception
public static java.util.List<CvStage.Result.Circle> findCircularSymmetry(Mat image, int xCenter, int yCenter, int minDiameter, int maxDiameter, int searchDiameter, int searchWidth, int searchHeight, int maxTargetCount, double minSymmetry, double corrSymmetry, int subSampling, int superSampling, DetectCircularSymmetry.SymmetryScore symmetryScore, boolean diagnostics, boolean heatMap, DetectCircularSymmetry.ScoreRange scoreRange) throws java.lang.Exception
image
- Image to be searched. If diagnostics are enabled, this image will be modified.xCenter
- Nominal X center of the search area inside the given image, in pixels.yCenter
- Nominal Y center of the search area inside the given image, in pixels.minDiameter
- Minimum diameter of the examined circular symmetry area (pixels inside it are ignored).maxDiameter
- Maximum diameter of the examined circular symmetry area (pixels outside it are ignored).searchDiameter
- Search diameter across the given center. Limited by image margins and searchWidth, searchHeight.searchWidth
- Search height across the given center. Limited by image margins.searchHeight
- Search height across the given center. Limited by image margins.maxTargetCount
- Maximum number of wanted targets detected.minSymmetry
- The minimum circular symmetry required to detect a match. This is the ratio of overall pixel
variance divided by the circular pixel variance (sum of ring pixel variances).corrSymmetry
- Correlated minimum circular symmetry for multiple matches, i.e. other matches must have
at least this relative symmetry. Must be in the interval [0,1].subSampling
- Sub-sampling pixel distance, i.e. only one pixel out of a square of size subSampling will be
examined on the first pass.superSampling
- Super-sampling pixel fraction, i.e. the result will have 1/superSampling sub-pixel accuracy.symmetryScore
- The symmetry score function used to judge circular symmetry.diagnostics
- If true, draws diagnostic match circles and cross hairs into the image.heatMap
- If true, overlays a diagnostic heat map onto the image.scoreRange
- Outputs the score range of all the sampled center candidates.java.lang.Exception
protected static java.util.List<DetectCircularSymmetry.SymmetryCircle> sortAndLimit(java.util.List<DetectCircularSymmetry.SymmetryCircle> circles, int maxTargetCount, double corrSymmetry)