/home/laradmin/lar/perception/road/caltech_lanes/src/LaneDetector.hh File Reference

#include "mcv.hh"
#include "InversePerspectiveMapping.hh"
Include dependency graph for LaneDetector.hh:
This graph shows which files directly or indirectly include this file:

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[])

Detailed Description

Author:
Mohamed Aly <malaa@caltech.edu>
Date:
Thu 26 Jul, 2007

Definition in file LaneDetector.hh.


Define Documentation

#define FILTER_LINE_HORIZONTAL   0

This function filters the input image looking for horizontal or vertical lines with specific width or height.

Parameters:
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.

Parameters:
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.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines


caltech_lanes
Author(s): Morais
autogenerated on Wed Jul 23 04:33:34 2014