ARX  1.0
The next-generation open source augmented reality toolkit.
Loading...
Searching...
No Matches
PlanarTracker.h
Go to the documentation of this file.
1/*
2 * PlanarTracker.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 PLANAR_TRACKER_H
40#define PLANAR_TRACKER_H
41#include <memory>
42#include <string>
43#include <sstream>
44#include <iostream>
45#include <vector>
46#include <ARX/AR/ar.h> // ARdouble, ARLOG
48{
49public:
50 std::shared_ptr<unsigned char> imageData;
51 int uid;
52 float scale;
53 int width;
54 int height;
55 std::string fileName;
56};
57
59{
60public:
65
66 void Initialise(ARParam cParam);
67
73 void ProcessFrameData(unsigned char * frame);
74
75 void RemoveAllMarkers();
76 void AddMarker(std::shared_ptr<unsigned char> buff, std::string fileName, int width, int height, int uid, float scale);
77 void AddMarker(std::string imageName, int uid, float scale);
78
81 bool GetTrackablePose(int trackableId, float transMat[3][4]);
82
83 bool IsTrackableVisible(int trackableId);
84 bool LoadTrackableDatabase(std::string fileName);
85 bool SaveTrackableDatabase(std::string fileName);
86
87 bool ChangeImageId(int prevId, int newId);
88 std::vector<int> GetImageIds();
90
91 void SetFeatureDetector(int detectorType);
92 int GetFeatureDetector(void);
93
94 void SetMaximumNumberOfMarkersToTrack(int maximumNumberOfMarkersToTrack);
96
97
98private:
100 std::shared_ptr<PlanarTrackerImpl> _trackerImpl;
101
102};
103#endif
artoolkitX core routines.
Definition: PlanarTracker.cpp:52
Definition: PlanarTracker.h:59
void AddMarker(std::string imageName, int uid, float scale)
TrackedImageInfo GetTrackableImageInfo(int trackableId)
Definition: PlanarTracker.cpp:763
void RemoveAllMarkers()
Definition: PlanarTracker.cpp:725
bool SaveTrackableDatabase(std::string fileName)
Definition: PlanarTracker.cpp:749
bool LoadTrackableDatabase(std::string fileName)
Definition: PlanarTracker.cpp:745
void AddMarker(std::shared_ptr< unsigned char > buff, std::string fileName, int width, int height, int uid, float scale)
Definition: PlanarTracker.cpp:730
PlanarTracker & operator=(PlanarTracker &&)
void ProcessFrameData(unsigned char *frame)
Perform tracking on a single frame of video.
Definition: PlanarTracker.cpp:720
int GetFeatureDetector(void)
Definition: PlanarTracker.cpp:773
PlanarTracker()
Definition: PlanarTracker.cpp:707
void Initialise(ARParam cParam)
Definition: PlanarTracker.cpp:715
bool ChangeImageId(int prevId, int newId)
Definition: PlanarTracker.cpp:754
int GetMaximumNumberOfMarkersToTrack(void)
Definition: PlanarTracker.cpp:783
PlanarTracker(PlanarTracker &&)
std::vector< int > GetImageIds()
Definition: PlanarTracker.cpp:758
void SetMaximumNumberOfMarkersToTrack(int maximumNumberOfMarkersToTrack)
Definition: PlanarTracker.cpp:778
void SetFeatureDetector(int detectorType)
Definition: PlanarTracker.cpp:768
bool GetTrackablePose(int trackableId, float transMat[3][4])
If trackable is not visible, returns false, otherwise retrieves pose of trackable into transMat and r...
Definition: PlanarTracker.cpp:735
bool IsTrackableVisible(int trackableId)
Definition: PlanarTracker.cpp:740
Definition: PlanarTracker.h:48
int uid
Definition: PlanarTracker.h:51
std::string fileName
Definition: PlanarTracker.h:55
float scale
Definition: PlanarTracker.h:52
int height
Definition: PlanarTracker.h:54
std::shared_ptr< unsigned char > imageData
Definition: PlanarTracker.h:50
int width
Definition: PlanarTracker.h:53
Structure holding camera parameters, including image size, projection matrix and lens distortion para...
Definition: param.h:99