|
|
|
@ -25,50 +25,71 @@ public: |
|
|
|
|
enum GradientOperator |
|
|
|
|
{ |
|
|
|
|
PREWITT = 0, |
|
|
|
|
SOBEL = 1, |
|
|
|
|
SCHARR = 2, |
|
|
|
|
LSD = 3 |
|
|
|
|
SOBEL = 1, |
|
|
|
|
SCHARR = 2, |
|
|
|
|
LSD = 3 |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
struct CV_EXPORTS_W_SIMPLE Params |
|
|
|
|
{ |
|
|
|
|
CV_WRAP Params(); |
|
|
|
|
//! Parameter Free mode will be activated when this value is true.
|
|
|
|
|
//! Parameter Free mode will be activated when this value is set as true. Default value is false.
|
|
|
|
|
CV_PROP_RW bool PFmode; |
|
|
|
|
//! indicates the operator used for gradient calculation.The following operation flags are available(cv::ximgproc::EdgeDrawing::GradientOperator)
|
|
|
|
|
/** @brief indicates the operator used for gradient calculation.
|
|
|
|
|
|
|
|
|
|
one of the flags cv::ximgproc::EdgeDrawing::GradientOperator. Default value is PREWITT |
|
|
|
|
*/ |
|
|
|
|
CV_PROP_RW int EdgeDetectionOperator; |
|
|
|
|
//! threshold value used to create gradient image.
|
|
|
|
|
//! threshold value of gradiential difference between pixels. Used to create gradient image. Default value is 20
|
|
|
|
|
CV_PROP_RW int GradientThresholdValue; |
|
|
|
|
//! threshold value used to create gradient image.
|
|
|
|
|
//! threshold value used to select anchor points. Default value is 0
|
|
|
|
|
CV_PROP_RW int AnchorThresholdValue; |
|
|
|
|
//! Default value is 1
|
|
|
|
|
CV_PROP_RW int ScanInterval; |
|
|
|
|
//! minimun connected pixels length processed to create an edge segment.
|
|
|
|
|
/** @brief minimun connected pixels length processed to create an edge segment.
|
|
|
|
|
|
|
|
|
|
in gradient image, minimum connected pixels length processed to create an edge segment. pixels having upper value than GradientThresholdValue |
|
|
|
|
will be processed. Default value is 10 |
|
|
|
|
*/ |
|
|
|
|
CV_PROP_RW int MinPathLength; |
|
|
|
|
//! sigma value for internal GaussianBlur() function.
|
|
|
|
|
//! sigma value for internal GaussianBlur() function. Default value is 1.0
|
|
|
|
|
CV_PROP_RW float Sigma; |
|
|
|
|
CV_PROP_RW bool SumFlag; |
|
|
|
|
//! when this value is true NFA (Number of False Alarms) algorithm will be used for line and ellipse validation.
|
|
|
|
|
//! Default value is true. indicates if NFA (Number of False Alarms) algorithm will be used for line and ellipse validation.
|
|
|
|
|
CV_PROP_RW bool NFAValidation; |
|
|
|
|
//! minimun line length to detect.
|
|
|
|
|
CV_PROP_RW int MinLineLength; |
|
|
|
|
//! Default value is 6.0
|
|
|
|
|
CV_PROP_RW double MaxDistanceBetweenTwoLines; |
|
|
|
|
//! Default value is 1.0
|
|
|
|
|
CV_PROP_RW double LineFitErrorThreshold; |
|
|
|
|
//! Default value is 1.3
|
|
|
|
|
CV_PROP_RW double MaxErrorThreshold; |
|
|
|
|
|
|
|
|
|
void read(const FileNode& fn); |
|
|
|
|
void write(FileStorage& fs) const; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** @brief Detects edges and prepares them to detect lines and ellipses.
|
|
|
|
|
/** @brief Detects edges in a grayscale image and prepares them to detect lines and ellipses.
|
|
|
|
|
|
|
|
|
|
@param src input image |
|
|
|
|
@param src 8-bit, single-channel, grayscale input image. |
|
|
|
|
*/ |
|
|
|
|
CV_WRAP virtual void detectEdges(InputArray src) = 0; |
|
|
|
|
|
|
|
|
|
/** @brief returns Edge Image prepared by detectEdges() function.
|
|
|
|
|
|
|
|
|
|
@param dst returns 8-bit, single-channel output image. |
|
|
|
|
*/ |
|
|
|
|
CV_WRAP virtual void getEdgeImage(OutputArray dst) = 0; |
|
|
|
|
|
|
|
|
|
/** @brief returns Gradient Image prepared by detectEdges() function.
|
|
|
|
|
|
|
|
|
|
@param dst returns 16-bit, single-channel output image. |
|
|
|
|
*/ |
|
|
|
|
CV_WRAP virtual void getGradientImage(OutputArray dst) = 0; |
|
|
|
|
|
|
|
|
|
/** @brief Returns std::vector<std::vector<Point>> of detected edge segments, see detectEdges()
|
|
|
|
|
*/ |
|
|
|
|
*/ |
|
|
|
|
CV_WRAP virtual std::vector<std::vector<Point> > getSegments() = 0; |
|
|
|
|
|
|
|
|
|
/** @brief Returns for each line found in detectLines() its edge segment index in getSegments()
|
|
|
|
@ -77,15 +98,15 @@ public: |
|
|
|
|
|
|
|
|
|
/** @brief Detects lines.
|
|
|
|
|
|
|
|
|
|
@param lines output Vec<4f> contains start point and end point of detected lines. |
|
|
|
|
@note you should call detectEdges() method before call this. |
|
|
|
|
@param lines output Vec<4f> contains the start point and the end point of detected lines. |
|
|
|
|
@note you should call detectEdges() before calling this function. |
|
|
|
|
*/ |
|
|
|
|
CV_WRAP virtual void detectLines(OutputArray lines) = 0; |
|
|
|
|
|
|
|
|
|
/** @brief Detects circles and ellipses.
|
|
|
|
|
|
|
|
|
|
@param ellipses output Vec<6d> contains center point and perimeter for circles. |
|
|
|
|
@note you should call detectEdges() method before call this. |
|
|
|
|
@param ellipses output Vec<6d> contains center point and perimeter for circles, center point, axes and angle for ellipses. |
|
|
|
|
@note you should call detectEdges() before calling this function. |
|
|
|
|
*/ |
|
|
|
|
CV_WRAP virtual void detectEllipses(OutputArray ellipses) = 0; |
|
|
|
|
|
|
|
|
@ -93,7 +114,8 @@ public: |
|
|
|
|
|
|
|
|
|
/** @brief sets parameters.
|
|
|
|
|
|
|
|
|
|
this function is meant to be used for parameter setting in other languages than c++. |
|
|
|
|
this function is meant to be used for parameter setting in other languages than c++ like python. |
|
|
|
|
@param parameters |
|
|
|
|
*/ |
|
|
|
|
CV_WRAP void setParams(const EdgeDrawing::Params& parameters); |
|
|
|
|
virtual ~EdgeDrawing() { } |
|
|
|
|