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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
</*----------------------------------------------
* Usage:
* example_tracking_multitracker <video_name> [algorithm]
*
* example:
* example_tracking_multitracker Bolt/img/%04d.jpg
* example_tracking_multitracker faceocc2.webm KCF
*
* Note: after the OpenCV libary is installed,
* please re-compile this code with "HAVE_OPENCV" parameter activated
* to enable the high precission of fps computation
*--------------------------------------------------*/
/* after the OpenCV libary is installed
* please uncomment the the line below and re-compile this code
* to enable high precission of fps computation
*/
//#define HAVE_OPENCV
#include <opencv2/core/utility.hpp>
#include <opencv2/tracking.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <cstring>
#include <ctime>
#include "samples_utility.hpp"
#ifdef HAVE_OPENCV
#include <opencv2/flann.hpp>
#endif
#define RESET "\033[0m"
#define RED "\033[31m" /* Red */
#define GREEN "\033[32m" /* Green */
using namespace std;
using namespace cv;
int main( int argc, char** argv ){
// show help
if(argc<2){
cout<<
" Usage: example_tracking_multitracker <video_name> [algorithm]\n"// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: SynchronizeDBResponse.proto
#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "SynchronizeDBResponse.pb.h"
#include <algorithm>
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
namespace Tango {
namespace PMR {
namespace Synchronization {
class SynchronizeDBResponseDefaultTypeInternal {
public:
::google::protobuf::internal::ExplicitlyConstructed<SynchronizeDBResponse>
_instance;
} _SynchronizeDBResponse_default_instance_;
namespace protobuf_SynchronizeDBResponse_2eproto {
namespace {
::google::protobuf::Metadata file_level_metadata[1];
} // namespace
PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
{0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
};
PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
::google::protobuf::internal::AuxillaryParseTableField(),
};
PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
{ NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
};
const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
~0u, // no _has_bits_
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SynchronizeDBResponse, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SynchronizeDBResponse, remotedb_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
{ 0, -1, sizeof(SynchronizeDBResponse)},
};
static ::google::protobuf::Message const * const file_default_instances[] = {
reinterpret_cast<const ::google::protobuf::Message*>(&_SynchronizeDBResponse_default_instance_),
};
namespace {
void protobuf_AssignDescriptors() {
AddDescriptors();
::google::protobuf::MessageFactory* factory = NULL;
AssignDescriptors(
"SynchronizeDBResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
file_level_metadata, NULL, NULL);
}
void protobuf_AssignDescriptorsOnce() {
static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}
void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
protobuf_AssignDescriptorsOnce();
::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 1);
}
} // namespace
void TableStruct::InitDefaultsImpl() {
GOOGLE_PROTOBUF_VERIFY_VERSION;
::google::protobuf::internal::InitProtobufDefaults();
_SynchronizeDBResponse_default_instance_._instance.DefaultConstruct();
::google::protobuf::internal::OnShutdownDestroyMessage(
&_SynchronizeDBResponse_default_instance_);}
void InitDefaults() {
static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
}
namespace {
void AddDescriptorsImpl() {
InitDefaults();
static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
"\n\033SynchronizeDBResponse.proto\022\031Tango.PMR"
".Synchronization\")\n\025SynchronizeDBRespons"
"e\022\020\n\010RemoteDB\030\001 \001(\014B%\n#com.twine.tango.p"
"mr.synchronizationb\006proto3"
};
::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
descriptor, 146);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"SynchronizeDBResponse.proto", &protobuf_RegisterTypes);
}
} // anonymous namespace
void AddDescriptors() {
static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
StaticDescriptorInitializer() {
AddDescriptors();
}
} static_descriptor_initializer;
} // namespace protobuf_SynchronizeDBResponse_2eproto
// ===================================================================
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SynchronizeDBResponse::kRemoteDBFieldNumber;
#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
SynchronizeDBResponse::SynchronizeDBResponse()
: ::google::protobuf::Message(), _internal_metadata_(NULL) {
if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
protobuf_SynchronizeDBResponse_2eproto::InitDefaults();
}
SharedCtor();
// @@protoc_insertion_point(constructor:Tango.PMR.Synchronization.SynchronizeDBResponse)
}
SynchronizeDBResponse::SynchronizeDBResponse(const SynchronizeDBResponse& from)
: ::google::protobuf::Message(),
_internal_metadata_(NULL),
_cached_size_(0) {
_internal_metadata_.MergeFrom(from._internal_metadata_);
remotedb_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
if (from.remotedb().size() > 0) {
remotedb_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.remotedb_);
}
// @@protoc_insertion_point(copy_constructor:Tango.PMR.Synchronization.SynchronizeDBResponse)
}
void SynchronizeDBResponse::SharedCtor() {
remotedb_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
_cached_size_ = 0;
}
SynchronizeDBResponse::~SynchronizeDBResponse() {
// @@protoc_insertion_point(destructor:Tango.PMR.Synchronization.SynchronizeDBResponse)
SharedDtor();
}
void SynchronizeDBResponse::SharedDtor() {
remotedb_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SynchronizeDBResponse::SetCachedSize(int size) const {
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
_cached_size_ = size;
GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SynchronizeDBResponse::descriptor() {
protobuf_SynchronizeDBResponse_2eproto::protobuf_AssignDescriptorsOnce();
return protobuf_SynchronizeDBResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}
const SynchronizeDBResponse& SynchronizeDBResponse::default_instance() {
protobuf_SynchronizeDBResponse_2eproto::InitDefaults();
return *internal_default_instance();
}
SynchronizeDBResponse* SynchronizeDBResponse::New(::google::protobuf::Arena* arena) const {
SynchronizeDBResponse* n = new SynchronizeDBResponse;
if (arena != NULL) {
arena->Own(n);
}
return n;
}
void SynchronizeDBResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
::google::protobuf::uint32 cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
remotedb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
_internal_metadata_.Clear();
}
bool SynchronizeDBResponse::MergePartialFromCodedStream(
::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
::google::protobuf::uint32 tag;
// @@protoc_insertion_point(parse_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
for (;;) {
::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
tag = p.first;
if (!p.second) goto handle_unusual;
switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
// bytes RemoteDB = 1;
case 1: {
if (static_cast< ::google::protobuf::uint8>(tag) ==
static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
input, this->mutable_remotedb()));
} else {
goto handle_unusual;
}
break;
}
default: {
handle_unusual:
if (tag == 0) {
goto success;
}
DO_(::google::protobuf::internal::WireFormat::SkipField(
input, tag, _internal_metadata_.mutable_unknown_fields()));
break;
}
}
}
success:
// @@protoc_insertion_point(parse_success:Tango.PMR.Synchronization.SynchronizeDBResponse)
return true;
failure:
// @@protoc_insertion_point(parse_failure:Tango.PMR.Synchronization.SynchronizeDBResponse)
return false;
#undef DO_
}
void SynchronizeDBResponse::SerializeWithCachedSizes(
::google::protobuf::io::CodedOutputStream* output) const {
// @@protoc_insertion_point(serialize_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
// bytes RemoteDB = 1;
if (this->remotedb().size() > 0) {
::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
1, this->remotedb(), output);
}
if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
::google::protobuf::internal::WireFormat::SerializeUnknownFields(
(::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
}
// @@protoc_insertion_point(serialize_end:Tango.PMR.Synchronization.SynchronizeDBResponse)
}
::google::protobuf::uint8* SynchronizeDBResponse::InternalSerializeWithCachedSizesToArray(
bool deterministic, ::google::protobuf::uint8* target) const {
(void)deterministic; // Unused
// @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
// bytes RemoteDB = 1;
if (this->remotedb().size() > 0) {
target =
::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
1, this->remotedb(), target);
}
if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
(::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
}
// @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Synchronization.SynchronizeDBResponse)
return target;
}
size_t SynchronizeDBResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
size_t total_size = 0;
if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
total_size +=
::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
(::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
}
// bytes RemoteDB = 1;
if (this->remotedb().size() > 0) {
total_size += 1 +
::google::protobuf::internal::WireFormatLite::BytesSize(
this->remotedb());
}
int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
_cached_size_ = cached_size;
GOOGLE_SAFE_CONCURRENT_WRITES_END();
return total_size;
}
void SynchronizeDBResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
GOOGLE_DCHECK_NE(&from, this);
const SynchronizeDBResponse* source =
::google::protobuf::internal::DynamicCastToGenerated<const SynchronizeDBResponse>(
&from);
if (source == NULL) {
// @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Synchronization.SynchronizeDBResponse)
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
// @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Synchronization.SynchronizeDBResponse)
MergeFrom(*source);
}
}
void SynchronizeDBResponse::MergeFrom(const SynchronizeDBResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
GOOGLE_DCHECK_NE(&from, this);
_internal_metadata_.MergeFrom(from._internal_metadata_);
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
if (from.remotedb().size() > 0) {
remotedb_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.remotedb_);
}
}
void SynchronizeDBResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
if (&from == this) return;
Clear();
MergeFrom(from);
}
void SynchronizeDBResponse::CopyFrom(const SynchronizeDBResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool SynchronizeDBResponse::IsInitialized() const {
return true;
}
void SynchronizeDBResponse::Swap(SynchronizeDBResponse* other) {
if (other == this) return;
InternalSwap(other);
}
void SynchronizeDBResponse::InternalSwap(SynchronizeDBResponse* other) {
using std::swap;
remotedb_.Swap(&other->remotedb_);
_internal_metadata_.Swap(&other->_internal_metadata_);
swap(_cached_size_, other->_cached_size_);
}
::google::protobuf::Metadata SynchronizeDBResponse::GetMetadata() const {
protobuf_SynchronizeDBResponse_2eproto::protobuf_AssignDescriptorsOnce();
return protobuf_SynchronizeDBResponse_2eproto::file_level_metadata[kIndexInFileMessages];
}
#if PROTOBUF_INLINE_NOT_IN_HEADERS
// SynchronizeDBResponse
// bytes RemoteDB = 1;
void SynchronizeDBResponse::clear_remotedb() {
remotedb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& SynchronizeDBResponse::remotedb() const {
// @@protoc_insertion_point(field_get:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
return remotedb_.GetNoArena();
}
void SynchronizeDBResponse::set_remotedb(const ::std::string& value) {
remotedb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
// @@protoc_insertion_point(field_set:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
}
#if LANG_CXX11
void SynchronizeDBResponse::set_remotedb(::std::string&& value) {
remotedb_.SetNoArena(
&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
// @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
}
#endif
void SynchronizeDBResponse::set_remotedb(const char* value) {
GOOGLE_DCHECK(value != NULL);
remotedb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
// @@protoc_insertion_point(field_set_char:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
}
void SynchronizeDBResponse::set_remotedb(const void* value, size_t size) {
remotedb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
::std::string(reinterpret_cast<const char*>(value), size));
// @@protoc_insertion_point(field_set_pointer:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
}
::std::string* SynchronizeDBResponse::mutable_remotedb() {
// @@protoc_insertion_point(field_mutable:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
return remotedb_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SynchronizeDBResponse::release_remotedb() {
// @@protoc_insertion_point(field_release:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
return remotedb_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SynchronizeDBResponse::set_allocated_remotedb(::std::string* remotedb) {
if (remotedb != NULL) {
} else {
}
remotedb_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), remotedb);
// @@protoc_insertion_point(field_set_allocated:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
}
#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
// @@protoc_insertion_point(namespace_scope)
} // namespace Synchronization
} // namespace PMR
} // namespace Tango
// @@protoc_insertion_point(global_scope)
|