#include "mcv.hh"
#include "InversePerspectiveMapping.hh"
Go to the source code of this file.
Classes | |
struct | LaneDetector::LaneDetectorConf |
Structure to hold lane detector settings. More... | |
struct | LaneDetector::Line |
Line structure with start and end points. More... | |
struct | LaneDetector::LineState_ |
struct | LaneDetector::Spline |
Spline structure. More... | |
Namespaces | |
namespace | LaneDetector |
Defines | |
#define | FILTER_LINE_HORIZONTAL 0 |
#define | FILTER_LINE_VERTICAL 1 |
#define | GROUPING_TYPE_HOUGH_LINES 1 |
#define | GROUPING_TYPE_HV_LINES 0 |
#define | HV_LINES_HORIZONTAL 0 |
#define | HV_LINES_VERTICAL 1 |
Typedefs | |
typedef enum LaneDetector::CheckSplineStatus_ | LaneDetector::CheckSplineStatus |
typedef struct LaneDetector::LaneDetectorConf | LaneDetector::LaneDetectorConf |
Structure to hold lane detector settings. | |
typedef struct LaneDetector::Line | LaneDetector::Line |
Line structure with start and end points. | |
typedef enum LaneDetector::LineColor_ | LaneDetector::LineColor |
Line color. | |
typedef struct LaneDetector::LineState_ | LaneDetector::LineState |
typedef enum LaneDetector::LineType_ | LaneDetector::LineType |
Line type. | |
typedef struct LaneDetector::Spline | LaneDetector::Spline |
Spline structure. | |
Enumerations | |
enum | LaneDetector::CheckSplineStatus_ { LaneDetector::ShortSpline = 0x1, LaneDetector::CurvedSpline = 0x2, LaneDetector::CurvedSplineTheta = 0x4, LaneDetector::HorizontalSpline = 0x8 } |
enum | LaneDetector::LineColor_ { LaneDetector::LINE_COLOR_NONE, LaneDetector::LINE_COLOR_YELLOW, LaneDetector::LINE_COLOR_WHITE } |
Line color. More... | |
enum | LaneDetector::LineType_ { LaneDetector::LINE_HORIZONTAL = 0, LaneDetector::LINE_VERTICAL = 1 } |
Line type. More... | |
Functions | |
CvPoint2D32f | LaneDetector::mcvAddVector (CvPoint2D32f v1, CvPoint2D32f v2) |
void | LaneDetector::mcvBinarizeImage (CvMat *inImage) |
void | LaneDetector::mcvCheckLaneWidth (vector< Line > &lines, vector< float > &scores, float wMu, float wSigma) |
This function takes a bunch of lines, and check which 2 lines can make a lane. | |
bool | LaneDetector::mcvCheckMergeLines (const Line &line1, const Line &line2, float thetaThreshold, float rThreshold) |
bool | LaneDetector::mcvCheckMergeSplines (const Spline &sp1, const Spline &sp2, float thetaThreshold, float rThreshold, float meanThetaThreshold, float meanRThreshold, float centroidThreshold) |
int | LaneDetector::mcvCheckPoints (const CvMat *points) |
int | LaneDetector::mcvCheckSpline (const Spline &spline, float curvenessThreshold, float lengthThreshold, float thetaDiffThreshold, float thetaThreshold) |
int | LaneDetector::mcvChooseBestPeak (const vector< CvPoint2D32f > &peaks, const vector< float > &peakVals, CvPoint2D32f &peak, float &peakVal, float contThreshold, const CvPoint2D32f &tangent, const CvPoint2D32f &prevPoint, float angleThreshold) |
void | LaneDetector::mcvCumSum (const CvMat *inMat, CvMat *outMat) |
void | LaneDetector::mcvDrawLine (CvMat *image, Line line, CvScalar color, int width) |
void | LaneDetector::mcvDrawRectangle (CvMat *image, CvRect rect, CvScalar color, int width) |
void | LaneDetector::mcvDrawSpline (CvMat *image, Spline spline, CvScalar color, int width) |
void | LaneDetector::mcvDrawText (CvMat *image, char *str, CvPoint point, float size, CvScalar color) |
CvMat * | LaneDetector::mcvEvalBezierSpline (const Spline &spline, float h, CvMat *tangents) |
CvMat * | LaneDetector::mcvExtendPoints (const CvMat *im, const CvMat *inPoints, float angleThreshold, float meanDirAngleThreshold, int linePixelsTangent, int linePixelsNormal, float contThreshold, int deviationThreshold, CvRect bbox, bool smoothPeaks) |
void | LaneDetector::mcvFilterLines (const CvMat *inImage, CvMat *outImage, unsigned char wx, unsigned char wy, FLOAT sigmax, FLOAT sigmay, LineType lineType) |
Spline | LaneDetector::mcvFitBezierSpline (CvMat *points, int degree) |
void | LaneDetector::mcvFitRansacLine (const CvMat *image, int numSamples, int numIterations, float threshold, float scoreThreshold, int numGoodFit, bool getEndPoints, LineType lineType, Line *lineXY, float *lineRTheta, float *lineScore) |
void | LaneDetector::mcvFitRansacSpline (const CvMat *image, int numSamples, int numIterations, float threshold, float scoreThreshold, int numGoodFit, int splineDegree, float h, Spline *spline, float *splineScore, int splineScoreJitter, float splineScoreLengthRatio, float splineScoreAngleRatio, float splineScoreStep, vector< Spline > *prevSplines) |
void | LaneDetector::mcvFitRobustLine (const CvMat *points, float *lineRTheta, float *lineAbc) |
void | LaneDetector::mcvGet2DerivativeGaussianKernel (CvMat *kernel, unsigned char w, FLOAT sigma) |
CvMat * | LaneDetector::mcvGetBezierSplinePixels (Spline &spline, float h, CvSize box, bool extendSpline) |
Line | LaneDetector::mcvGetExtendedNormalLine (CvPoint2D32f &curPoint, CvPoint2D32f &tangent, int linePixelsTangent, int linePixelsNormal, CvPoint2D32f &nextPoint) |
void | LaneDetector::mcvGetGaussianKernel (CvMat *kernel, unsigned char w, FLOAT sigma) |
void | LaneDetector::mcvGetHoughTransformLines (const CvMat *inImage, vector< Line > *lines, vector< FLOAT > *lineScores, FLOAT rMin, FLOAT rMax, FLOAT rStep, FLOAT thetaMin, FLOAT thetaMax, FLOAT thetaStep, bool binarize, bool localMaxima, FLOAT detectionThreshold, bool smoothScores, bool group, FLOAT groupThreshold) |
void | LaneDetector::mcvGetHVLines (const CvMat *inImage, vector< Line > *lines, vector< FLOAT > *lineScores, LineType lineType, FLOAT linePixelWidth, bool binarize, bool localMaxima, FLOAT detectionThreshold, bool smoothScores) |
vector< int > | LaneDetector::mcvGetJitterVector (int maxJitter) |
void | LaneDetector::mcvGetLanes (const CvMat *inImage, const CvMat *clrImage, vector< Line > *lanes, vector< FLOAT > *lineScores, vector< Spline > *splines, vector< float > *splineScores, CameraInfo *cameraInfo, LaneDetectorConf *stopLineConf, LineState *state) |
float | LaneDetector::mcvGetLineAngle (const Line &line) |
void | LaneDetector::mcvGetLineExtent (const CvMat *im, const Line &inLine, Line &outLine) |
float | LaneDetector::mcvGetLinePeak (const CvMat *im, const Line &line, vector< CvPoint2D32f > &peaks, vector< float > &peakVals, bool positivePeak, bool smoothPeaks) |
CvMat * | LaneDetector::mcvGetLinePixels (const Line &line) |
void | LaneDetector::mcvGetLines (const CvMat *image, LineType lineType, vector< Line > &lines, vector< float > &lineScores, vector< Spline > &splines, vector< float > &splineScores, LaneDetectorConf *lineConf, LineState *state) |
void | LaneDetector::mcvGetLinesBoundingBoxes (const vector< Line > &lines, LineType type, CvSize size, vector< CvRect > &boxes) |
This function extracts bounding boxes from lines. | |
double | LaneDetector::mcvGetLocalMaxSubPixel (double val1, double val2, double val3) |
void | LaneDetector::mcvGetMatLocalMax (const CvMat *inMat, vector< double > &localMaxima, vector< CvPoint > &localMaximaLoc, double threshold) |
void | LaneDetector::mcvGetMatMax (const CvMat *inMat, vector< double > &maxima, vector< CvPoint > &maximaLoc, double threshold) |
CvMat * | LaneDetector::mcvGetNonZeroPoints (const CvMat *inMat, bool floatMat) |
LineColor | LaneDetector::mcvGetPointsColor (const CvMat *im, const CvMat *points, int window, float numYellowMin, float rgMin, float rgMax, float gbMin, float rbMin, bool rbf, float rbfThreshold) |
void | LaneDetector::mcvGetPointsFeatures (const CvMat *points, CvPoint2D32f *centroid, float *theta, float *r, float *length, float *meanTheta, float *meanR, float *curveness) |
CvPoint2D32f | LaneDetector::mcvGetPointsMeanVector (const CvMat *points, bool forward) |
FLOAT | LaneDetector::mcvGetQuantile (const CvMat *mat, FLOAT qtile) |
void | LaneDetector::mcvGetRansacLines (const CvMat *im, vector< Line > &lines, vector< float > &lineScores, LaneDetectorConf *lineConf, LineType lineType) |
void | LaneDetector::mcvGetRansacSplines (const CvMat *im, vector< Line > &lines, vector< float > &lineScores, LaneDetectorConf *lineConf, LineType lineType, vector< Spline > &splines, vector< float > &splineScores, LineState *state) |
void | LaneDetector::mcvGetSplineFeatures (const Spline &spline, CvPoint2D32f *centroid, float *theta, float *r, float *length, float *meanTheta, float *meanR, float *curveness) |
void | LaneDetector::mcvGetSplinesBoundingBoxes (const vector< Spline > &splines, LineType type, CvSize size, vector< CvRect > &boxes) |
This function extracts bounding boxes from splines. | |
float | LaneDetector::mcvGetSplineScore (const CvMat *image, Spline &spline, float h, int jitterVal, float lengthRatio, float angleRatio) |
void | LaneDetector::mcvGetStopLines (const CvMat *inImage, vector< Line > *stopLines, vector< float > *lineScores, const CameraInfo *cameraInfo, LaneDetectorConf *stopLineConf) |
void | LaneDetector::mcvGetVectorLocalMax (const CvMat *inVec, vector< double > &localMaxima, vector< int > &localMaximaLoc) |
void | LaneDetector::mcvGetVectorMax (const CvMat *inVector, double *max, int *maxLoc, int ignore) |
float | LaneDetector::mcvGetVectorNorm (const CvPoint2D32f &v) |
void | LaneDetector::mcvGroupBoundingBoxes (vector< CvRect > &boxes, LineType type, float groupThreshold) |
This function groups together bounding boxes. | |
void | LaneDetector::mcvGroupLines (vector< Line > &lines, vector< float > &lineScores, float groupThreshold, CvSize bbox) |
void | LaneDetector::mcvGroupSplines (vector< Spline > &splines, vector< float > &scores) |
void | LaneDetector::mcvInitLaneDetectorConf (char *const fileName, LaneDetectorConf *stopLineConf) |
void | LaneDetector::mcvIntersectLineRThetaWithBB (FLOAT r, FLOAT theta, const CvSize bbox, Line *outLine) |
void | LaneDetector::mcvIntersectLineRThetaWithRect (FLOAT r, FLOAT theta, const Line &rect, Line &outLine) |
void | LaneDetector::mcvIntersectLineWithBB (const Line *inLine, const CvSize bbox, Line *outLine) |
bool | LaneDetector::mcvIsPointInside (FLOAT_POINT2D &point, const CvRect &rect) |
bool | LaneDetector::mcvIsPointInside (FLOAT_POINT2D &point, const Line &rect) |
bool | LaneDetector::mcvIsPointInside (FLOAT_POINT2D point, CvSize bbox) |
bool | LaneDetector::mcvIsValidPeak (const CvPoint2D32f &peak, const CvPoint2D32f &tangent, const CvPoint2D32f &prevPoint, float angleThreshold) |
void | LaneDetector::mcvLines2Mat (const vector< Line > *lines, CvMat *mat) |
void | LaneDetector::mcvLinesImIPM2Im (vector< Line > &lines, IPMInfo &ipmInfo, CameraInfo &cameraInfo, CvSize imSize) |
void | LaneDetector::mcvLineXY2RTheta (const Line &line, float &r, float &theta) |
Spline | LaneDetector::mcvLineXY2Spline (const Line &line, int degree) |
void | LaneDetector::mcvLocalizePoints (const CvMat *im, const CvMat *inPoints, CvMat *outPoints, int numLinePixels, float angleThreshold) |
void | LaneDetector::mcvMat2Lines (const CvMat *mat, vector< Line > *lines) |
void | LaneDetector::mcvMatInt2Float (const CvMat *inMat, CvMat *outMat) |
CvPoint2D32f | LaneDetector::mcvMultiplyVector (CvPoint2D32f v, float s) |
CvPoint2D32f | LaneDetector::mcvNormalizeVector (float x, float y) |
CvPoint2D32f | LaneDetector::mcvNormalizeVector (const CvPoint &v) |
CvPoint2D32f | LaneDetector::mcvNormalizeVector (const CvPoint2D32f &v) |
void | LaneDetector::mcvPostprocessLines (const CvMat *image, const CvMat *clrImage, const CvMat *rawipm, const CvMat *fipm, vector< Line > &lines, vector< float > &lineScores, vector< Spline > &splines, vector< float > &splineScores, LaneDetectorConf *lineConf, LineState *state, IPMInfo &ipmInfo, CameraInfo &cameraInfo) |
void | LaneDetector::mcvSampleWeighted (const CvMat *cumSum, int numSamples, CvMat *randInd, CvRNG *rng) |
void | LaneDetector::mcvSetMat (CvMat *inMat, CvRect mask, double val) |
void | LaneDetector::mcvSortPoints (const CvMat *inPoints, CvMat *outPoints, int dim, int dir) |
void | LaneDetector::mcvSplinesImIPM2Im (vector< Spline > &splines, IPMInfo &ipmInfo, CameraInfo &cameraInfo, CvSize imSize) |
CvPoint2D32f | LaneDetector::mcvSubtractVector (const CvPoint2D32f &v1, const CvPoint2D32f &v2) |
void | LaneDetector::mcvThresholdLower (const CvMat *inMat, CvMat *outMat, FLOAT threshold) |
void | LaneDetector::SHOW_LINE (const Line line, char str[]) |
void | LaneDetector::SHOW_SPLINE (const Spline spline, char str[]) |
Definition in file LaneDetector.hh.
#define FILTER_LINE_HORIZONTAL 0 |
This function filters the input image looking for horizontal or vertical lines with specific width or height.
inImage | the input image | |
outImage | the output image in IPM | |
wx | width of kernel window in x direction = 2*wx+1 (default 2) | |
wy | width of kernel window in y direction = 2*wy+1 (default 2) | |
sigmax | std deviation of kernel in x (default 1) | |
sigmay | std deviation of kernel in y (default 1) | |
lineType | type of the line LINE_HORIZONTAL (default) LINE_VERTICAL |
Definition at line 358 of file LaneDetector.hh.
#define FILTER_LINE_VERTICAL 1 |
Definition at line 359 of file LaneDetector.hh.
#define GROUPING_TYPE_HOUGH_LINES 1 |
Definition at line 81 of file LaneDetector.hh.
#define GROUPING_TYPE_HV_LINES 0 |
Definition at line 80 of file LaneDetector.hh.
#define HV_LINES_HORIZONTAL 0 |
This function groups the input filtered image into horizontal or vertical lines.
inImage | input image | |
lines | returned detected lines (vector of points) | |
lineScores | scores of the detected lines (vector of floats) | |
lineType | type of lines to detect LINE_HORIZONTAL (default) or LINE_VERTICAL | |
linePixelWidth | width (or height) of lines to detect | |
localMaxima | whether to detect local maxima or just get the maximum | |
detectionThreshold | threshold for detection |
Definition at line 378 of file LaneDetector.hh.
#define HV_LINES_VERTICAL 1 |
Definition at line 379 of file LaneDetector.hh.