Visual Servoing Platform
version 3.6.1 under development (2024-11-21)
|
#include <visp3/imgproc/vpCircleHoughTransform.h>
Classes | |
class | vpCircleHoughTransformParams |
Public Member Functions | |
vpCircleHoughTransform () | |
VP_EXPLICIT | vpCircleHoughTransform (const vpCircleHoughTransformParams &algoParams) |
virtual | ~vpCircleHoughTransform () |
Detection methods | |
virtual std::vector< vpImageCircle > | detect (const vpImage< vpRGBa > &I) |
virtual std::vector< vpImageCircle > | detect (const vpImage< unsigned char > &I) |
virtual std::vector< vpImageCircle > | detect (const vpImage< unsigned char > &I, const int &nbCircles) |
void | computeVotingMask (const vpImage< unsigned char > &I, const std::vector< vpImageCircle > &detections, std::optional< vpImage< bool > > &mask, std::optional< std::vector< std::vector< std::pair< unsigned int, unsigned int >>>> &opt_votingPoints) const |
Setters | |
void | init (const vpCircleHoughTransformParams &algoParams) |
void | setFilteringAndGradientType (const vpImageFilter::vpCannyFilteringAndGradientType &type) |
void | setGaussianParameters (const int &kernelSize, const float &stdev) |
void | setGradientFilterAperture (const unsigned int &apertureSize) |
void | setCannyBackend (const vpImageFilter::vpCannyBackendType &type) |
void | setCannyThreshold (const float &lowerCannyThreshold, const float &upperCannyThreshold) |
void | setCannyThresholdRatio (const float &lowerThreshRatio, const float &upperThreshRatio) |
void | setCircleCenterMinDist (const float ¢er_min_dist) |
void | setCircleCenterBoundingBox (const int ¢er_min_x, const int ¢er_max_x, const int ¢er_min_y, const int ¢er_max_y) |
void | setCircleMinRadius (const float &circle_min_radius) |
void | setCircleMaxRadius (const float &circle_max_radius) |
void | setCirclePerfectness (const float &circle_perfectness) |
void | setCenterComputationParameters (const int &dilatationSize, const float ¢erThresh, const int &averagingWindowSize=5, const int expectedNbCenters=-1) |
void | setRadiusRatioThreshold (const float &radiusRatioThresh) |
void | setRadiusMergingThresholds (const float &radiusDifferenceThresh) |
void | setMask (const vpImage< bool > &mask) |
void | setMask (const vpImage< bool > *mask) |
void | setRecordVotingPoints (const bool &record) |
Getters | |
static const unsigned char | edgeMapOn = 255 |
static const unsigned char | edgeMapOff = 0 |
vpCircleHoughTransformParams | m_algoParams |
vpArray2D< float > | m_fg |
const vpImage< bool > * | mp_mask |
vpArray2D< float > | m_gradientFilterX |
vpArray2D< float > | m_gradientFilterY |
vpImage< float > | m_dIx |
vpImage< float > | m_dIy |
vpCannyEdgeDetection | m_cannyVisp |
vpImage< unsigned char > | m_edgeMap |
std::vector< std::pair< unsigned int, unsigned int > > | m_edgePointsList |
std::vector< std::pair< float, float > > | m_centerCandidatesList |
std::vector< int > | m_centerVotes |
std::vector< vpImageCircle > | m_circleCandidates |
std::vector< float > | m_circleCandidatesProbabilities |
std::vector< unsigned int > | m_circleCandidatesVotes |
std::vector< std::vector< std::pair< unsigned int, unsigned int > > > | m_circleCandidatesVotingPoints |
std::vector< vpImageCircle > | m_finalCircles |
std::vector< float > | m_finalCirclesProbabilities |
std::vector< unsigned int > | m_finalCircleVotes |
std::vector< std::vector< std::pair< unsigned int, unsigned int > > > | m_finalCirclesVotingPoints |
std::vector< std::pair< float, float > > | getCenterCandidatesList () const |
std::vector< int > | getCenterCandidatesVotes () const |
std::vector< vpImageCircle > | getCircleCandidates () const |
std::vector< float > | getCircleCandidatesProbabilities () const |
std::vector< unsigned int > | getCircleCandidatesVotes () const |
vpImage< float > | getGradientX () const |
vpImage< float > | getGradientY () const |
vpImage< unsigned char > | getEdgeMap () const |
float | getCannyThreshold () const |
float | getCircleCenterMinDist () const |
float | getCircleMinRadius () const |
float | getCircleMaxRadius () const |
std::vector< float > | getDetectionsProbabilities () const |
std::vector< unsigned int > | getDetectionsVotes () const |
std::vector< std::vector< std::pair< unsigned int, unsigned int > > > | getDetectionsVotingPoints () const |
bool | getRecordVotingPoints () const |
std::string | toString () const |
VISP_EXPORT std::ostream & | operator<< (std::ostream &os, const vpCircleHoughTransform &detector) |
virtual void | initGaussianFilters () |
virtual void | initGradientFilters () |
virtual void | computeGradients (const vpImage< unsigned char > &I) |
virtual void | edgeDetection (const vpImage< unsigned char > &I) |
virtual void | filterEdgeMap () |
virtual void | computeCenterCandidates () |
virtual void | filterCenterCandidates (const std::vector< vpCenterVotes > &peak_positions_votes) |
virtual vpCentersBarycenter | mergeSimilarCenters (const unsigned int &idPeak, const unsigned int &nbPeaks, const float &squared_distance_max, const std::vector< vpCenterVotes > &peak_positions_votes, std::vector< bool > &has_been_merged) |
virtual float | computeCircleProbability (const vpImageCircle &circle, const unsigned int &nbVotes) |
virtual void | computeCircleCandidates () |
virtual void | mergeCircleCandidates () |
virtual void | mergeCandidates (std::vector< vpImageCircle > &circleCandidates, std::vector< unsigned int > &circleCandidatesVotes, std::vector< float > &circleCandidatesProba, std::vector< std::vector< std::pair< unsigned int, unsigned int > > > &votingPoints) |
Configuration from files | |
VP_EXPLICIT | vpCircleHoughTransform (const std::string &jsonPath) |
virtual void | initFromJSON (const std::string &jsonPath) |
virtual void | saveConfigurationInJSON (const std::string &jsonPath) const |
void | from_json (const nlohmann::json &j, vpCircleHoughTransform &detector) |
void | to_json (nlohmann::json &j, const vpCircleHoughTransform &detector) |
Class that permits to detect 2D circles in a image using the gradient-based Circle Hough transform. Please find more information on the algorithm here
Definition at line 64 of file vpCircleHoughTransform.h.
BEGIN_VISP_NAMESPACE vpCircleHoughTransform::vpCircleHoughTransform | ( | ) |
Construct a new vpCircleHoughTransform object with default parameters.
Definition at line 63 of file vpCircleHoughTransform_common.cpp.
References initGaussianFilters(), and initGradientFilters().
vpCircleHoughTransform::vpCircleHoughTransform | ( | const vpCircleHoughTransformParams & | algoParams | ) |
Construct a new vpCircleHoughTransform object from a vpCircleHoughTransformParams object.
[in] | algoParams | The parameters of the Circle Hough Transform. |
Definition at line 71 of file vpCircleHoughTransform_common.cpp.
References initGaussianFilters(), and initGradientFilters().
|
virtual |
Destroy the vp Circle Hough Transform object.
Definition at line 87 of file vpCircleHoughTransform_common.cpp.
vpCircleHoughTransform::vpCircleHoughTransform | ( | const std::string & | jsonPath | ) |
Construct a new vpCircleHoughTransform object configured according to the JSON file whose path is jsonPath. Throw a vpException error if the file does not exist.
[in] | jsonPath | The path towards the JSON configuration file. |
Definition at line 93 of file vpCircleHoughTransform_common.cpp.
References initFromJSON().
|
protectedvirtual |
Determine the image points that are circle center candidates. Increment the center accumulator based on the edge points and gradient information. Perform thresholding to keep only the center candidates that exceed the threshold.
< Votes for the center candidates.
Definition at line 342 of file vpCircleHoughTransform_centers.cpp.
References vpException::badValue, vpImageMorphology::dilatation(), vpException::dimensionError, edgeMapOn, vpMath::equal(), filterCenterCandidates(), vpImage< Type >::getCols(), vpImage< Type >::getRows(), m_algoParams, m_dIx, m_dIy, m_edgeMap, and m_edgePointsList.
Referenced by detect().
|
protectedvirtual |
For each center candidate CeC_i, do:
Definition at line 135 of file vpCircleHoughTransform_circles.cpp.
References computeCircleProbability(), m_algoParams, m_centerCandidatesList, m_circleCandidates, m_circleCandidatesProbabilities, m_circleCandidatesVotes, m_circleCandidatesVotingPoints, m_dIx, m_dIy, and m_edgePointsList.
Referenced by detect().
|
protectedvirtual |
Compute the probability of circle given the number of pixels voting for it nbVotes. The probability is defined as the ratio of nbVotes by the theoretical number of pixel that should be visible in the image.
[in] | circle | The circle for which we want to evaluate the probability. |
[in] | nbVotes | The number of visible pixels of the given circle. |
Definition at line 276 of file vpCircleHoughTransform_circles.cpp.
References vpImageCircle::computeArcLengthInRoI(), vpImageCircle::computePixelsInMask(), vpImage< Type >::getHeight(), vpImage< Type >::getWidth(), m_edgeMap, and mp_mask.
Referenced by computeCircleCandidates().
|
protectedvirtual |
Perform Gaussian smoothing on the input image to reduce the noise that would perturbate the edge detection. Then, compute the x-gradient and y-gradient of the input images.
[in] | I | The input gray scale image. |
Definition at line 236 of file vpCircleHoughTransform_centers.cpp.
References vpImageFilter::CANNY_GBLUR_SCHARR_FILTERING, vpImageFilter::CANNY_GBLUR_SOBEL_FILTERING, vpArray2D< Type >::data, vpImageFilter::filter(), vpImageFilter::filterX(), vpImageFilter::filterY(), m_algoParams, m_dIx, m_dIy, m_fg, m_gradientFilterX, m_gradientFilterY, mp_mask, vpException::notImplementedError, and vpImageFilter::vpCannyFiltAndGradTypeToStr().
Referenced by detect().
void vpCircleHoughTransform::computeVotingMask | ( | const vpImage< unsigned char > & | I, |
const std::vector< vpImageCircle > & | detections, | ||
std::optional< vpImage< bool > > & | mask, | ||
std::optional< std::vector< std::vector< std::pair< unsigned int, unsigned int >>>> & | opt_votingPoints | ||
) | const |
Compute the mask containing pixels that voted for the detections.
[in] | I | The image for which we want to have the information. |
[in] | detections | Vector containing the list of vpImageCircle for which we want to know the voting points. |
[out] | mask | Optional mask where pixels to exclude have a value set to false. |
[out] | opt_votingPoints | Optional vector of pairs of pixel coordinates that voted for the detections. |
Definition at line 342 of file vpCircleHoughTransform_common.cpp.
References vpImage< Type >::getHeight(), and vpImage< Type >::getWidth().
|
virtual |
Perform Circle Hough Transform to detect the circles in a gray-scale image.
[in] | I | The input gray scale image. |
Definition at line 262 of file vpCircleHoughTransform_common.cpp.
References computeCenterCandidates(), computeCircleCandidates(), computeGradients(), edgeDetection(), m_algoParams, m_centerCandidatesList, m_centerVotes, m_circleCandidates, m_circleCandidatesProbabilities, m_circleCandidatesVotes, m_circleCandidatesVotingPoints, m_edgePointsList, m_finalCircles, m_finalCirclesProbabilities, m_finalCirclesVotingPoints, m_finalCircleVotes, and mergeCircleCandidates().
|
virtual |
Perform Circle Hough Transform to detect the circles in in a gray-scale image. Get only the nbCircles circles having the greatest number of votes.
[in] | I | The input gray scale image. |
[in] | nbCircles | The number of circles we want to get. If negative, all the circles will be returned, sorted such as result[0] has the highest number of votes and result[end -1] the lowest. |
Definition at line 209 of file vpCircleHoughTransform_common.cpp.
References detect(), m_algoParams, m_finalCircles, m_finalCirclesProbabilities, m_finalCirclesVotingPoints, and m_finalCircleVotes.
|
virtual |
Convert the input image in a gray-scale image and then perform Circle Hough Transform to detect the circles in it.
[in] | I | The input color image. |
Definition at line 191 of file vpCircleHoughTransform_common.cpp.
References vpImageConvert::convert().
Referenced by detect().
|
protectedvirtual |
Perform edge detection based on the computed gradients. Stores the edge points and the edge points connectivity.
[in] | I | The input gray scale image. |
Definition at line 258 of file vpCircleHoughTransform_centers.cpp.
References vpImageFilter::canny(), vpImageFilter::CANNY_VISP_BACKEND, vpCannyEdgeDetection::detect(), filterEdgeMap(), vpImage< Type >::getHeight(), vpImage< Type >::getWidth(), m_algoParams, m_cannyVisp, m_dIx, m_dIy, m_edgeMap, mp_mask, vpCannyEdgeDetection::setCannyThresholds(), vpCannyEdgeDetection::setCannyThresholdsRatio(), vpCannyEdgeDetection::setFilteringAndGradientType(), vpCannyEdgeDetection::setGradients(), and vpCannyEdgeDetection::setMask().
Referenced by detect().
|
protectedvirtual |
Aggregate center candidates that are close to each other.
[in] | peak_positions_votes | Vector containing raw center candidates. |
Definition at line 482 of file vpCircleHoughTransform_centers.cpp.
References m_algoParams, m_centerCandidatesList, m_centerVotes, and mergeSimilarCenters().
Referenced by computeCenterCandidates().
|
protectedvirtual |
Filter the edge map in order to remove isolated edge points.
Definition at line 305 of file vpCircleHoughTransform_centers.cpp.
References edgeMapOff, edgeMapOn, vpImage< Type >::getHeight(), vpImage< Type >::getWidth(), and m_edgeMap.
Referenced by edgeDetection().
|
inline |
Get internal Canny filter upper threshold. When value is equal to -1 (default), it means that the threshold is computed automatically.
Definition at line 1167 of file vpCircleHoughTransform.h.
|
inline |
Get the list of Center Candidates, stored as pair <idRow, idCol>
Definition at line 1087 of file vpCircleHoughTransform.h.
|
inline |
Get the number of votes of each Center Candidates.
Definition at line 1097 of file vpCircleHoughTransform.h.
|
inline |
Get the Circle Candidates before merging step.
Definition at line 1108 of file vpCircleHoughTransform.h.
|
inline |
Get the probabilities of the Circle Candidates.
Definition at line 1118 of file vpCircleHoughTransform.h.
|
inline |
Get the votes of the circle candidates.
Definition at line 1128 of file vpCircleHoughTransform.h.
|
inline |
Get circles center min distance in pixels.
Definition at line 1175 of file vpCircleHoughTransform.h.
|
inline |
Get circles max radius in pixels.
Definition at line 1191 of file vpCircleHoughTransform.h.
|
inline |
Get circles min radius in pixels.
Definition at line 1183 of file vpCircleHoughTransform.h.
|
inline |
Get the probabilities of the detections that are outputed by vpCircleHoughTransform::detect()
Definition at line 1199 of file vpCircleHoughTransform.h.
|
inline |
Get the number of votes for the detections that are outputed by vpCircleHoughTransform::detect()
Definition at line 1207 of file vpCircleHoughTransform.h.
|
inline |
Get the points that voted for the detections that are outputed by vpCircleHoughTransform::detect().
Definition at line 1215 of file vpCircleHoughTransform.h.
References vpException::fatalError.
|
inline |
Get the Edge Map computed thanks to the Canny edge filter.
Definition at line 1158 of file vpCircleHoughTransform.h.
|
inline |
Get the gradient along the horizontal axis of the image.
Definition at line 1138 of file vpCircleHoughTransform.h.
|
inline |
Get the gradient along the vertical axis of the image.
Definition at line 1148 of file vpCircleHoughTransform.h.
|
inline |
Returns true if it was asked to record the points that voted for the detections.
Definition at line 1226 of file vpCircleHoughTransform.h.
void vpCircleHoughTransform::init | ( | const vpCircleHoughTransformParams & | algoParams | ) |
Initialize all the algorithm parameters.
[in] | algoParams | The algorithm parameters. |
Definition at line 80 of file vpCircleHoughTransform_common.cpp.
References initGaussianFilters(), initGradientFilters(), and m_algoParams.
|
virtual |
Initialize all the algorithm parameters using the JSON file whose path is jsonPath. Throw a vpException error if the file does not exist.
[in] | jsonPath | The path towards the JSON configuration file. |
Definition at line 100 of file vpCircleHoughTransform_common.cpp.
References initGaussianFilters(), initGradientFilters(), vpException::ioError, and m_algoParams.
Referenced by vpCircleHoughTransform().
|
protectedvirtual |
Initialize the Gaussian filters used to blur the image and compute the gradient images.
Definition at line 134 of file vpCircleHoughTransform_common.cpp.
References vpArray2D< Type >::data, vpImageFilter::getGaussianKernel(), m_algoParams, m_cannyVisp, m_fg, vpArray2D< Type >::resize(), and vpCannyEdgeDetection::setGaussianFilterParameters().
Referenced by init(), initFromJSON(), and vpCircleHoughTransform().
|
protectedvirtual |
Initialize the gradient filters used to compute the gradient images.
Definition at line 143 of file vpCircleHoughTransform_common.cpp.
References vpException::badValue, vpImageFilter::CANNY_GBLUR_SCHARR_FILTERING, vpImageFilter::CANNY_GBLUR_SOBEL_FILTERING, vpArray2D< Type >::data, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpImageFilter::getScharrKernelX(), vpImageFilter::getScharrKernelY(), vpImageFilter::getSobelKernelX(), vpImageFilter::getSobelKernelY(), m_algoParams, m_cannyVisp, m_gradientFilterX, m_gradientFilterY, vpException::notImplementedError, vpArray2D< Type >::resize(), vpCannyEdgeDetection::setGradientFilterAperture(), and vpImageFilter::vpCannyFiltAndGradTypeToStr().
Referenced by init(), initFromJSON(), and vpCircleHoughTransform().
|
protectedvirtual |
For each circle candidate CiC_i do:
[out] | circleCandidates | List of circle candidates in which we want to merge the similar circles. |
[out] | circleCandidatesVotes | List of votes of the circle candidates. |
[out] | circleCandidatesProba | List of probabilities of the circle candidates. |
[out] | votingPoints | List of edge-map points having voted of the circle candidates. |
Definition at line 317 of file vpCircleHoughTransform_circles.cpp.
References vpImagePoint::distance(), vpImageCircle::getCenter(), vpImageCircle::getRadius(), and m_algoParams.
Referenced by mergeCircleCandidates().
|
protectedvirtual |
For each circle candidate CiC_i, check if similar circles have also been detected and if so merges them.
Definition at line 297 of file vpCircleHoughTransform_circles.cpp.
References m_circleCandidates, m_circleCandidatesProbabilities, m_circleCandidatesVotes, m_circleCandidatesVotingPoints, m_finalCircles, m_finalCirclesProbabilities, m_finalCirclesVotingPoints, m_finalCircleVotes, and mergeCandidates().
Referenced by detect().
|
protectedvirtual |
Look in the list containing the raw center candidates if one is closed to the center candidate that is currently of interest.
[in] | idPeak | The ID of the center candidate that is currently of interest. |
[in] | nbPeaks | The number of center candidates. |
[in] | squared_distance_max | The maximum squared distance between to center candidates to merge them. |
[in] | peak_positions_votes | The list containing the raw center candidates. |
[out] | has_been_merged | Vector indicating if the center candidates have already been merged. |
Definition at line 534 of file vpCircleHoughTransform_centers.cpp.
References m_algoParams.
Referenced by filterCenterCandidates().
|
virtual |
Save the configuration of the detector in a JSON file described by the path jsonPath. Throw a vpException is the file cannot be created.
[in] | jsonPath | The path towards the JSON output file. |
Definition at line 127 of file vpCircleHoughTransform_common.cpp.
References m_algoParams, and vpCircleHoughTransform::vpCircleHoughTransformParams::saveConfigurationInJSON().
|
inline |
Set the backend to use to perform the Canny edge detection.
[in] | type | The backend that must be used. |
Definition at line 875 of file vpCircleHoughTransform.h.
|
inline |
Set the threshold for the Canny operator. Only value greater than this value are marked as an edge. If negative, the threshold is automatically computed.
[in] | lowerCannyThreshold | : Canny filter lower threshold. When set to -1 (default), compute automatically this threshold. |
[in] | upperCannyThreshold | : Canny filter upper threshold. When set to -1 (default), compute automatically this threshold. |
Definition at line 889 of file vpCircleHoughTransform.h.
|
inline |
Set the Canny thresholds ratio that are used to automatically compute the Canny thresholds in case the user asks to.
[in] | lowerThreshRatio | The ratio of the upper threshold the lower threshold will be equal to. |
[in] | upperThreshRatio | The ratio of pixels that must have a gradient lower than the upper threshold. |
Definition at line 904 of file vpCircleHoughTransform.h.
|
inline |
Set the parameters of the computation of the circle center candidates.
[in] | dilatationSize | Kernel size of the dilatation operation used to detect the maxima in the center accumulator. |
[in] | centerThresh | Minimum number of votes a point must exceed to be considered as center candidate. |
[in] | averagingWindowSize | Size of the averaging window around the maximum number of votes to compute the center candidate such as it is the barycenter of the window. Must be odd. |
[in] | expectedNbCenters | Expected number of centers in the image. If the number is negative, all the centers are kept. Otherwise, maximum up to this number of centers are kept. |
Definition at line 990 of file vpCircleHoughTransform.h.
References vpException::badValue.
|
inline |
Set circles center min and max location in the image. If one value is equal to std::numeric_limits<int>::min or std::numeric_limits<int>::max(), the algorithm will set it either to -maxRadius or +maxRadius depending on if it is the lower or upper limit that is missing.
[in] | center_min_x | : Center min location on the horizontal axis, expressed in pixels. |
[in] | center_max_x | : Center max location on the horizontal axis, expressed in pixels. |
[in] | center_min_y | : Center min location on the vertical axis, expressed in pixels. |
[in] | center_max_y | : Center max location on the vertical axis, expressed in pixels. |
Definition at line 938 of file vpCircleHoughTransform.h.
|
inline |
Set circles center min distance. Change this value to detect circles with different distances to each other.
[in] | center_min_dist | : Center min distance in pixels. |
Definition at line 917 of file vpCircleHoughTransform.h.
References vpException::badValue.
|
inline |
Set circles max radius.
[in] | circle_max_radius | : Max radius in pixels. |
Definition at line 960 of file vpCircleHoughTransform.h.
|
inline |
Set circles min radius.
[in] | circle_min_radius | : Min radius in pixels. |
Definition at line 951 of file vpCircleHoughTransform.h.
|
inline |
Set circles perfectness, which corresponds to the threshold of the colinearity between the gradient of a point and the radius it would form with a center candidate to be able to vote. The formula to get the equivalent angle is: angle = acos(circle_perfectness)
.
[in] | circle_perfectness | : Circle perfectness. Value between 0 and 1. A perfect circle has value 1. |
Definition at line 972 of file vpCircleHoughTransform.h.
References vpException::badValue.
|
inline |
Permits to choose the filtering + gradient operators to use.
[in] | type | The type of filtering + gradient operators to use. |
Definition at line 822 of file vpCircleHoughTransform.h.
|
inline |
Set the parameters of the Gaussian filter, that permits to blur the gradients of the image.
[in] | kernelSize | The size of the Gaussian kernel. Must be an odd value. |
[in] | stdev | The standard deviation of the Gaussian function. |
Definition at line 836 of file vpCircleHoughTransform.h.
References vpException::badValue.
|
inline |
Set the parameters of the gradient filter (Sobel or Scharr) kernel size filters.
[in] | apertureSize | The size of the gradient filters kernel. Must be an odd value. |
Definition at line 858 of file vpCircleHoughTransform.h.
References vpException::badValue.
|
inline |
Set the mask that permits to ignore some pixels when performing the circle detection.
[in] | mask | A boolean image where pixels set to true means that the pixel must be considered and set to false means that the pixel must be ignored. |
Definition at line 1051 of file vpCircleHoughTransform.h.
|
inline |
Set the mask that permits to ignore some pixels when performing the circle detection.
[in] | mask | Either a boolean image where pixels set to true means that the pixel must be considered and set to false means that the pixel must be ignored, or nullptr to deactivate the mask. |
Definition at line 1063 of file vpCircleHoughTransform.h.
|
inline |
Set the radius merging threshold used during the merging step in order to merge the circles that are similar.
[in] | radiusDifferenceThresh | Maximum radius difference between two circle candidates to consider merging them. |
Definition at line 1036 of file vpCircleHoughTransform.h.
References vpException::badValue.
|
inline |
Set the parameters of the computation of the circle radius candidates.
[in] | radiusRatioThresh | Minimum number of votes per radian a radius candidate RC_ij of a center candidate CeC_i must have in order that the circle of center CeC_i and radius RC_ij must be considered as circle candidate. |
Definition at line 1021 of file vpCircleHoughTransform.h.
References vpException::badValue.
|
inline |
Permits to either activate or deactivate the memorization of the points that voted for the detected circles.
[in] | record | True to activate the feature, false to deactivate it. |
Definition at line 1074 of file vpCircleHoughTransform.h.
std::string vpCircleHoughTransform::toString | ( | ) | const |
Create a string with all Hough transform parameters.
Definition at line 411 of file vpCircleHoughTransform_common.cpp.
References m_algoParams, and vpCircleHoughTransform::vpCircleHoughTransformParams::toString().
|
friend |
Read the detector configuration from JSON. All values are optional and if an argument is not present, the default value defined in the constructor is kept.
[in] | j | The JSON object, resulting from the parsing of a JSON file. |
[out] | detector | The detector, that will be initialized from the JSON data. |
Definition at line 790 of file vpCircleHoughTransform.h.
|
friend |
Create a ostream with all Hough transform parameters.
Definition at line 416 of file vpCircleHoughTransform_common.cpp.
|
friend |
Parse a vpCircleHoughTransform into JSON format.
[out] | j | A JSON parser object. |
[in] | detector | The vpCircleHoughTransform that must be parsed into JSON format. |
Definition at line 801 of file vpCircleHoughTransform.h.
|
static |
Definition at line 1243 of file vpCircleHoughTransform.h.
Referenced by filterEdgeMap().
|
static |
Definition at line 1242 of file vpCircleHoughTransform.h.
Referenced by computeCenterCandidates(), and filterEdgeMap().
|
protected |
Attributes containing all the algorithm parameters.
Definition at line 1359 of file vpCircleHoughTransform.h.
Referenced by computeCenterCandidates(), computeCircleCandidates(), computeGradients(), detect(), edgeDetection(), filterCenterCandidates(), init(), initFromJSON(), initGaussianFilters(), initGradientFilters(), mergeCandidates(), mergeSimilarCenters(), saveConfigurationInJSON(), and toString().
|
protected |
Edge detector ViSP implementation, used if ViSP has not been compiled with OpenCV imgproc module
Definition at line 1371 of file vpCircleHoughTransform.h.
Referenced by edgeDetection(), initGaussianFilters(), and initGradientFilters().
|
protected |
Vector that contains the list of center candidates. They are stored as pair <row, col>.
Definition at line 1376 of file vpCircleHoughTransform.h.
Referenced by computeCircleCandidates(), detect(), and filterCenterCandidates().
|
protected |
Number of votes for the center candidates that are kept.
Definition at line 1377 of file vpCircleHoughTransform.h.
Referenced by detect(), and filterCenterCandidates().
|
protected |
List of the candidate circles.
Definition at line 1380 of file vpCircleHoughTransform.h.
Referenced by computeCircleCandidates(), detect(), and mergeCircleCandidates().
|
protected |
Probabilities of each candidate circle that is kept.
Definition at line 1381 of file vpCircleHoughTransform.h.
Referenced by computeCircleCandidates(), detect(), and mergeCircleCandidates().
|
protected |
Number of pixels voting for each candidate circle that is kept.
Definition at line 1382 of file vpCircleHoughTransform.h.
Referenced by computeCircleCandidates(), detect(), and mergeCircleCandidates().
|
protected |
Points that voted for each circle candidate.
Definition at line 1383 of file vpCircleHoughTransform.h.
Referenced by computeCircleCandidates(), detect(), and mergeCircleCandidates().
|
protected |
Gradient along the x-axis of the input image.
Definition at line 1367 of file vpCircleHoughTransform.h.
Referenced by computeCenterCandidates(), computeCircleCandidates(), computeGradients(), and edgeDetection().
|
protected |
Gradient along the y-axis of the input image.
Definition at line 1368 of file vpCircleHoughTransform.h.
Referenced by computeCenterCandidates(), computeCircleCandidates(), computeGradients(), and edgeDetection().
|
protected |
Edge map resulting from the edge detection algorithm.
Definition at line 1372 of file vpCircleHoughTransform.h.
Referenced by computeCenterCandidates(), computeCircleProbability(), edgeDetection(), and filterEdgeMap().
|
protected |
Vector that contains the list of edge points, to make faster some parts of the algo. They are stored as pair <row, col>.
Definition at line 1375 of file vpCircleHoughTransform.h.
Referenced by computeCenterCandidates(), computeCircleCandidates(), and detect().
|
protected |
Definition at line 1361 of file vpCircleHoughTransform.h.
Referenced by computeGradients(), and initGaussianFilters().
|
protected |
List of the final circles, i.e. the ones resulting from the merge of the circle candidates.
Definition at line 1386 of file vpCircleHoughTransform.h.
Referenced by detect(), and mergeCircleCandidates().
|
protected |
Probabilities of each final circle, i.e. resulting from the merge of the circle candidates.
Definition at line 1387 of file vpCircleHoughTransform.h.
Referenced by detect(), and mergeCircleCandidates().
|
protected |
Points that voted for each final circle.
Definition at line 1389 of file vpCircleHoughTransform.h.
Referenced by detect(), and mergeCircleCandidates().
|
protected |
Number of votes for the final circles.
Definition at line 1388 of file vpCircleHoughTransform.h.
Referenced by detect(), and mergeCircleCandidates().
|
protected |
Contains the coefficients of the gradient kernel along the X-axis
Definition at line 1365 of file vpCircleHoughTransform.h.
Referenced by computeGradients(), and initGradientFilters().
|
protected |
Contains the coefficients of the gradient kernel along the Y-axis
Definition at line 1366 of file vpCircleHoughTransform.h.
Referenced by computeGradients(), and initGradientFilters().
|
protected |
Mask that permits to avoid to compute gradients on some regions of the image.
Definition at line 1364 of file vpCircleHoughTransform.h.
Referenced by computeCircleProbability(), computeGradients(), and edgeDetection().