Hough Transform
cuda::HoughLinesDetector
Base class for lines detector algorithm.
class CV_EXPORTS HoughLinesDetector : public Algorithm
{
public:
virtual void detect(InputArray src, OutputArray lines) = 0;
virtual void downloadResults(InputArray d_lines, OutputArray h_lines, OutputArray h_votes = noArray()) = 0;
virtual void setRho(float rho) = 0;
virtual float getRho() const = 0;
virtual void setTheta(float theta) = 0;
virtual float getTheta() const = 0;
virtual void setThreshold(int threshold) = 0;
virtual int getThreshold() const = 0;
virtual void setDoSort(bool doSort) = 0;
virtual bool getDoSort() const = 0;
virtual void setMaxLines(int maxLines) = 0;
virtual int getMaxLines() const = 0;
};
cuda::HoughLinesDetector::detect
Finds lines in a binary image using the classical Hough transform.
cuda::HoughLinesDetector::downloadResults
Downloads results from :ocv:func:`cuda::HoughLinesDetector::detect` to host memory.
cuda::createHoughLinesDetector
Creates implementation for :ocv:class:`cuda::HoughLinesDetector` .
cuda::HoughSegmentDetector
Base class for line segments detector algorithm.
class CV_EXPORTS HoughSegmentDetector : public Algorithm
{
public:
virtual void detect(InputArray src, OutputArray lines) = 0;
virtual void setRho(float rho) = 0;
virtual float getRho() const = 0;
virtual void setTheta(float theta) = 0;
virtual float getTheta() const = 0;
virtual void setMinLineLength(int minLineLength) = 0;
virtual int getMinLineLength() const = 0;
virtual void setMaxLineGap(int maxLineGap) = 0;
virtual int getMaxLineGap() const = 0;
virtual void setMaxLines(int maxLines) = 0;
virtual int getMaxLines() const = 0;
};
Note
- An example using the Hough segment detector can be found at opencv_source_code/samples/gpu/houghlines.cpp
cuda::HoughSegmentDetector::detect
Finds line segments in a binary image using the probabilistic Hough transform.
cuda::createHoughSegmentDetector
Creates implementation for :ocv:class:`cuda::HoughSegmentDetector` .
cuda::HoughCirclesDetector
Base class for circles detector algorithm.
class CV_EXPORTS HoughCirclesDetector : public Algorithm
{
public:
virtual void detect(InputArray src, OutputArray circles) = 0;
virtual void setDp(float dp) = 0;
virtual float getDp() const = 0;
virtual void setMinDist(float minDist) = 0;
virtual float getMinDist() const = 0;
virtual void setCannyThreshold(int cannyThreshold) = 0;
virtual int getCannyThreshold() const = 0;
virtual void setVotesThreshold(int votesThreshold) = 0;
virtual int getVotesThreshold() const = 0;
virtual void setMinRadius(int minRadius) = 0;
virtual int getMinRadius() const = 0;
virtual void setMaxRadius(int maxRadius) = 0;
virtual int getMaxRadius() const = 0;
virtual void setMaxCircles(int maxCircles) = 0;
virtual int getMaxCircles() const = 0;
};
cuda::HoughCirclesDetector::detect
Finds circles in a grayscale image using the Hough transform.
cuda::createHoughCirclesDetector
Creates implementation for :ocv:class:`cuda::HoughCirclesDetector` .
cuda::createGeneralizedHoughBallard
Creates implementation for generalized hough transform from [Ballard1981] .
cuda::createGeneralizedHoughGuil
Creates implementation for generalized hough transform from [Guil1999] .
[Ballard1981] | Ballard, D.H. (1981). Generalizing the Hough transform to detect arbitrary shapes. Pattern Recognition 13 (2): 111-122. |
[Guil1999] | Guil, N., González-Linares, J.M. and Zapata, E.L. (1999). Bidimensional shape detection using an invariant approach. Pattern Recognition 32 (6): 1025-1038. |