-
Notifications
You must be signed in to change notification settings - Fork 1
/
Lane_Det_Mng.h
62 lines (52 loc) · 1.65 KB
/
Lane_Det_Mng.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <QtGui/QMainWindow>
#include "ui_lane_detection.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/videoio/videoio.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <opencv2/opencv.hpp>
#include <iostream>
#include <QImage>
#include <QThread>
#include <string>
#include <QMutex>
#include <QWaitCondition>
#include <QFile>
#include <QFileDialog>
#include <QMessageBox>
#include <QWaitCondition>
#include <opencv2/core/operations.hpp>
#include "opencv2/objdetect/objdetect.hpp"
#include <QDebug>
#include <QAbstractSlider>
using namespace cv;
#define TOP_OFFSET_ROAD 0.47
#define BOTTOM_OFFSET_ROAD 0.27
//HOUGH_TRANS
#define HOUGH_TETHA 1*CV_PI/180.
#define HOUGH_R 15
#define HOUGH_ACC 100 //Accumulator threshold parameter. Only those lines are returned that get enough votes
#define HOUGH_MIN_L 10 //minLineLength – Minimum line length. Line segments shorter than that are rejected.
#define HOUGH_MIN_G 1 //Maximum allowed gap between points on the same line to link them.
// Manager
class Lane_Det_Mng
{
public:
Lane_Det_Mng();
~Lane_Det_Mng(){};
bool detectCarsFlag;
Mat frame_in, frame_canny_out;
QVector<CvPoint> carsPosition;
CascadeClassifier carCascade;
std::vector<Rect> carsRect;
bool cascade_loaded_flag;
int canny_tr1,canny_tr2, ro, phi, acc,maxL,minL;
double gaussFiltr;
std::vector<Vec4i> lines;
//std::vector<Vec2f> lines;
void capture_fr (Mat &fr);
std::vector<Point2f> ransac (std::vector<Point2f> data);
private:
double _ransacThres ;
void detectLines();//Íàéäåì ëèíèè
void detectCars ();//Íàéäåì ìàøèíû
};