| ARX 1.0 The next-generation open source augmented reality toolkit.

Loading...
Searching...
No Matches
TrackingPointSelector.h
Go to the documentation of this file.
1/*
2 * TrackingPointSelector.h
3 * artoolkitX
4 *
5 * This file is part of artoolkitX.
6 *
7 * artoolkitX is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * artoolkitX is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with artoolkitX. If not, see <http://www.gnu.org/licenses/>.
19 *
20 * As a special exception, the copyright holders of this library give you
21 * permission to link this library with independent modules to produce an
22 * executable, regardless of the license terms of these independent modules, and to
23 * copy and distribute the resulting executable under terms of your choice,
24 * provided that you also meet, for each linked independent module, the terms and
25 * conditions of the license of that module. An independent module is a module
26 * which is neither derived from nor based on this library. If you modify this
27 * library, you may extend this exception to your version of the library, but you
28 * are not obligated to do so. If you do not wish to do so, delete this exception
29 * statement from your version.
30 *
31 * Copyright 2018 Realmax, Inc.
32 * Copyright 2015 Daqri, LLC.
33 * Copyright 2010-2015 ARToolworks, Inc.
34 *
35 * Author(s): Philip Lamb, Daniel Bell.
36 *
37 */
38
39#ifndef TRACKINGPOINTSELECTOR_H
40#define TRACKINGPOINTSELECTOR_H
41#include <vector>
42#include <map>
43#include "OCVConfig.h"
44#include "TrackedPoint.h"
45
46 class TrackingPointSelector
47{
48 public:
49 OCV_EXTERN TrackingPointSelector();
50
51 OCV_EXTERN TrackingPointSelector(std::vector<cv::Point2f> pts, int width, int height, int markerTemplateWidth);
52
53 void DistributeBins(int width, int height, int markerTemplateWidth);
54
55 void SetHomography(cv::Mat newHomography);
56
57 cv::Mat GetHomography();
58
59 void UpdatePointStatus(std::vector<uchar> status);
60
62 void SelectPoints();
63
64 std::vector<cv::Point2f> GetSelectedFeatures();
65
66 std::vector<cv::Point2f> GetTrackedFeatures();
67
68 std::vector<cv::Point3f> GetSelectedFeatures3d();
69
70 std::vector<cv::Point2f> GetSelectedFeaturesWarped();
71
73 OCV_EXTERN std::vector<cv::Point2f> GetAllFeatures();
74
75 OCV_EXTERN void CleanUp();
76
77 private:
78 std::vector<TrackedPoint> _selectedPts;
79 std::vector<cv::Point2f> _pts;
80 std::map<int, std::vector<TrackedPoint> > trackingPointBin;
81 cv::Mat homography;
82
83};
84#endif //TRACKINGPOINTSELECTOR
markerTemplateWidth
int markerTemplateWidth
Definition: OCVConfig.cpp:40
OCVConfig.h
OCV_EXTERN
#define OCV_EXTERN
Definition: OCVConfig.h:54
TrackedPoint.h
TrackingPointSelector
Definition: TrackingPointSelector.h:47
TrackingPointSelector::TrackingPointSelector
OCV_EXTERN TrackingPointSelector()
Definition: TrackingPointSelector.cpp:41
TrackingPointSelector::SelectPoints
void SelectPoints()
Reset selected points and then randomly select one point from each bin.
Definition: TrackingPointSelector.cpp:104
TrackingPointSelector::GetSelectedFeatures
std::vector< cv::Point2f > GetSelectedFeatures()
Definition: TrackingPointSelector.cpp:124
TrackingPointSelector::GetSelectedFeatures3d
std::vector< cv::Point3f > GetSelectedFeatures3d()
Definition: TrackingPointSelector.cpp:146
TrackingPointSelector::SetHomography
void SetHomography(cv::Mat newHomography)
Definition: TrackingPointSelector.cpp:84
TrackingPointSelector::DistributeBins
void DistributeBins(int width, int height, int markerTemplateWidth)
Definition: TrackingPointSelector.cpp:52
TrackingPointSelector::GetHomography
cv::Mat GetHomography()
Definition: TrackingPointSelector.cpp:89
TrackingPointSelector::GetAllFeatures
OCV_EXTERN std::vector< cv::Point2f > GetAllFeatures()
Get all points from all bins that are candidates for selection.
Definition: TrackingPointSelector.cpp:170
TrackingPointSelector::CleanUp
OCV_EXTERN void CleanUp()
Definition: TrackingPointSelector.cpp:181
TrackingPointSelector::GetTrackedFeatures
std::vector< cv::Point2f > GetTrackedFeatures()
Definition: TrackingPointSelector.cpp:135
TrackingPointSelector::GetSelectedFeaturesWarped
std::vector< cv::Point2f > GetSelectedFeaturesWarped()
Definition: TrackingPointSelector.cpp:157
TrackingPointSelector::UpdatePointStatus
void UpdatePointStatus(std::vector< uchar > status)
Definition: TrackingPointSelector.cpp:94