| 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
47 class TrackedImageInfo
48{
49 public:
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
58 class PlanarTracker
59{
60 public:
61 PlanarTracker();
62 ~PlanarTracker();
63 PlanarTracker(PlanarTracker&&);
64 PlanarTracker& operator = (PlanarTracker&&);
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();
89 TrackedImageInfo GetTrackableImageInfo(int trackableId);
90
91 void SetFeatureDetector(int detectorType);
92 int GetFeatureDetector(void);
93
94 void SetMaximumNumberOfMarkersToTrack(int maximumNumberOfMarkersToTrack);
95 int GetMaximumNumberOfMarkersToTrack(void);
96
97
98 private:
99 class PlanarTrackerImpl;
100 std::shared_ptr<PlanarTrackerImpl> _trackerImpl;
101
102};
103#endif
ar.h
artoolkitX core routines.
PlanarTracker::PlanarTrackerImpl
Definition: PlanarTracker.cpp:52
PlanarTracker
Definition: PlanarTracker.h:59
PlanarTracker::AddMarker
void AddMarker(std::string imageName, int uid, float scale)
PlanarTracker::GetTrackableImageInfo
TrackedImageInfo GetTrackableImageInfo(int trackableId)
Definition: PlanarTracker.cpp:763
PlanarTracker::RemoveAllMarkers
void RemoveAllMarkers()
Definition: PlanarTracker.cpp:725
PlanarTracker::~PlanarTracker
~PlanarTracker()
PlanarTracker::SaveTrackableDatabase
bool SaveTrackableDatabase(std::string fileName)
Definition: PlanarTracker.cpp:749
PlanarTracker::LoadTrackableDatabase
bool LoadTrackableDatabase(std::string fileName)
Definition: PlanarTracker.cpp:745
PlanarTracker::AddMarker
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 & operator=(PlanarTracker &&)
PlanarTracker::ProcessFrameData
void ProcessFrameData(unsigned char *frame)
Perform tracking on a single frame of video.
Definition: PlanarTracker.cpp:720
PlanarTracker::GetFeatureDetector
int GetFeatureDetector(void)
Definition: PlanarTracker.cpp:773
PlanarTracker::PlanarTracker
PlanarTracker()
Definition: PlanarTracker.cpp:707
PlanarTracker::Initialise
void Initialise(ARParam cParam)
Definition: PlanarTracker.cpp:715
PlanarTracker::ChangeImageId
bool ChangeImageId(int prevId, int newId)
Definition: PlanarTracker.cpp:754
PlanarTracker::GetMaximumNumberOfMarkersToTrack
int GetMaximumNumberOfMarkersToTrack(void)
Definition: PlanarTracker.cpp:783
PlanarTracker::PlanarTracker
PlanarTracker(PlanarTracker &&)
PlanarTracker::GetImageIds
std::vector< int > GetImageIds()
Definition: PlanarTracker.cpp:758
PlanarTracker::SetMaximumNumberOfMarkersToTrack
void SetMaximumNumberOfMarkersToTrack(int maximumNumberOfMarkersToTrack)
Definition: PlanarTracker.cpp:778
PlanarTracker::SetFeatureDetector
void SetFeatureDetector(int detectorType)
Definition: PlanarTracker.cpp:768
PlanarTracker::GetTrackablePose
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
PlanarTracker::IsTrackableVisible
bool IsTrackableVisible(int trackableId)
Definition: PlanarTracker.cpp:740
TrackedImageInfo
Definition: PlanarTracker.h:48
TrackedImageInfo::uid
int uid
Definition: PlanarTracker.h:51
TrackedImageInfo::fileName
std::string fileName
Definition: PlanarTracker.h:55
TrackedImageInfo::scale
float scale
Definition: PlanarTracker.h:52
TrackedImageInfo::height
int height
Definition: PlanarTracker.h:54
TrackedImageInfo::imageData
std::shared_ptr< unsigned char > imageData
Definition: PlanarTracker.h:50
TrackedImageInfo::width
int width
Definition: PlanarTracker.h:53
ARParam
Structure holding camera parameters, including image size, projection matrix and lens distortion para...
Definition: param.h:99