-
Notifications
You must be signed in to change notification settings - Fork 1
/
RansacFitCircle.h
53 lines (42 loc) · 1.17 KB
/
RansacFitCircle.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
#pragma once
#ifndef RANSACFITCIRCLE_H
#define RANSACFITCIRCLE_H
#include<vector>
#include<opencv.hpp>
#include "cv.h"
#include "highgui.h"
#include "math.h"
#include "cxcore.hpp"
//using namespace cv ;
using namespace std;
class RansacFitCircle
{
public:
RansacFitCircle();
//RansacFitCircle();
~RansacFitCircle();
std::vector<cv::Point2d> pt;
cv::Point2d bestCenter;
cv::Mat img;
double bestRadius;
int maxIteration;
double critera;
int bwpara;
std::vector<cv::Point2d> ptLeft;
std::vector<cv::Point2d> ptRight;
cv::Point bestMatchPoint;
cv::Point destination_pt;
public:
void getBestFitCircle();
//3 Point to form a circle
inline void getCircle(cv::Point2d& p1, cv::Point2d& p2, cv::Point2d& p3, cv::Point2d& center, double& radius);
int fitNumber(std::vector<cv::Point2d> pt, cv::Point2d center, double radius, int criteria);
void randSample();
//caculate two point distance
inline double distance(cv::Point2d pt1, cv::Point2d pt2);
//from an Mat to get the circle feature point by using sobel
void getFeaturePoint(std::vector<cv::Point2d>&ptLeft,std::vector<cv::Point2d> &ptRight);
private:
};
#endif
/////