Skip to content

Commit 30878bb

Browse files
Added new method, data structures updated
1 parent e0c8f41 commit 30878bb

15 files changed

+744
-168
lines changed

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ endif()
3131
################################################################################
3232
SET(${PARENT}_VTRACKER ON CACHE BOOL "" ${REWRITE_FORCE})
3333
SET(${PARENT}_VTRACKER_TEST ON CACHE BOOL "" ${REWRITE_FORCE})
34+
SET(${PARENT}_VTRACKER_EXAMPLE ON CACHE BOOL "" ${REWRITE_FORCE})
3435

3536

3637

@@ -46,3 +47,7 @@ endif()
4647
if (${PARENT}_VTRACKER_TEST)
4748
add_subdirectory(test)
4849
endif()
50+
51+
if (${PARENT}_VTRACKER_EXAMPLE)
52+
add_subdirectory(example)
53+
endif()

README.md

Lines changed: 201 additions & 155 deletions
Large diffs are not rendered by default.

_static/vtracker_logo.png

-52.6 KB
Binary file not shown.

_static/vtracker_web_logo.png

62.9 KB
Loading

example/CMakeLists.txt

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
cmake_minimum_required(VERSION 3.13)
2+
3+
4+
5+
###############################################################################
6+
## LIBRARY-PROJECT
7+
## name and version
8+
###############################################################################
9+
project(CustomVTracker VERSION 1.0.0 LANGUAGES CXX)
10+
11+
12+
13+
###############################################################################
14+
## SETTINGS
15+
## basic project settings before use
16+
###############################################################################
17+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
18+
set(CMAKE_CXX_STANDARD 17)
19+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
20+
# Enabling export of all symbols to create a dynamic library
21+
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
22+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
23+
# creating output directory architecture in accordance with GNU guidelines
24+
set(BINARY_DIR "${CMAKE_BINARY_DIR}")
25+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${BINARY_DIR}/bin")
26+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${BINARY_DIR}/lib")
27+
file (GLOB_RECURSE IN_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h.in)
28+
configure_file(${IN_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Version.h)
29+
30+
31+
32+
###############################################################################
33+
## TARGET
34+
## create target and add include path
35+
###############################################################################
36+
# create glob files for *.h, *.cpp, *.hpp
37+
file (GLOB_RECURSE H_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
38+
file (GLOB_RECURSE CPP_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
39+
file (GLOB_RECURSE HPP_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
40+
41+
# concatenate the results (glob files) to variable
42+
set (SOURCES ${CPP_FILES} ${H_FILES})
43+
# create lib from src
44+
if (NOT TARGET ${PROJECT_NAME})
45+
add_library(${PROJECT_NAME} STATIC ${SOURCES})
46+
endif()
47+
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
48+
49+
50+
51+
###############################################################################
52+
## LINK LIBRARIES
53+
## linking all dependencies
54+
###############################################################################
55+
target_link_libraries(${PROJECT_NAME} VTracker)
56+
57+

example/CustomVTracker.cpp

Lines changed: 302 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,302 @@
1+
#include "CustomVTracker.h"
2+
#include "CustomVTrackerVersion.h"
3+
4+
5+
6+
7+
cr::vtracker::CustomVTracker::CustomVTracker()
8+
{
9+
10+
}
11+
12+
13+
14+
cr::vtracker::CustomVTracker::~CustomVTracker()
15+
{
16+
17+
}
18+
19+
20+
21+
std::string cr::vtracker::CustomVTracker::getVersion()
22+
{
23+
return CUSTOM_VTRACKER_VERSION;
24+
}
25+
26+
27+
28+
bool cr::vtracker::CustomVTracker::initVTracker(cr::vtracker::VTrackerParams& params)
29+
{
30+
// Copy params.
31+
m_params = params;
32+
33+
return false;
34+
}
35+
36+
37+
38+
bool cr::vtracker::CustomVTracker::setParam(cr::vtracker::VTrackerParam id, float value)
39+
{
40+
// Check parameter ID.
41+
switch (id)
42+
{
43+
case cr::vtracker::VTrackerParam::SEARCH_WINDOW_WIDTH:
44+
{
45+
m_params.searchWindowWidth = (int)value;
46+
return true;
47+
}
48+
case cr::vtracker::VTrackerParam::SEARCH_WINDOW_HEIGHT:
49+
{
50+
m_params.searchWindowHeight = (int)value;
51+
return true;
52+
}
53+
case cr::vtracker::VTrackerParam::RECT_WIDTH:
54+
{
55+
m_params.rectWidth = (int)value;
56+
return true;
57+
}
58+
case cr::vtracker::VTrackerParam::RECT_HEIGHT:
59+
{
60+
m_params.rectHeight = (int)value;
61+
return true;
62+
}
63+
case cr::vtracker::VTrackerParam::LOST_MODE_OPTION:
64+
{
65+
m_params.lostModeOption = (int)value;
66+
return true;
67+
}
68+
case cr::vtracker::VTrackerParam::FRAME_BUFFER_SIZE:
69+
{
70+
m_params.frameBufferSize = (int)value;
71+
return true;
72+
}
73+
case cr::vtracker::VTrackerParam::MAX_FRAMES_IN_LOST_MODE:
74+
{
75+
m_params.maxFramesInLostMode = (int)value;
76+
return true;
77+
}
78+
case cr::vtracker::VTrackerParam::RECT_AUTO_SIZE:
79+
{
80+
m_params.rectAutoSize = (int)value == 0 ? false : true;
81+
return true;
82+
}
83+
case cr::vtracker::VTrackerParam::RECT_AUTO_POSITION:
84+
{
85+
m_params.rectAutoPosition = (int)value == 0 ? false : true;
86+
return true;
87+
}
88+
case cr::vtracker::VTrackerParam::MULTIPLE_THREADS:
89+
{
90+
m_params.multipleThreads = (int)value == 0 ? false : true;
91+
return true;
92+
}
93+
case cr::vtracker::VTrackerParam::NUM_CHANNELS:
94+
{
95+
m_params.numChannels = (int)value;
96+
return true;
97+
}
98+
case cr::vtracker::VTrackerParam::TYPE:
99+
{
100+
m_params.type = (int)value;
101+
return true;
102+
}
103+
case cr::vtracker::VTrackerParam::CUSTOM_1:
104+
{
105+
m_params.custom1 = value;
106+
return true;
107+
}
108+
case cr::vtracker::VTrackerParam::CUSTOM_2:
109+
{
110+
m_params.custom2 = value;
111+
return true;
112+
}
113+
case cr::vtracker::VTrackerParam::CUSTOM_3:
114+
{
115+
m_params.custom3 = value;
116+
return true;
117+
}
118+
default:
119+
{
120+
return false;
121+
}
122+
}
123+
124+
return false;
125+
}
126+
127+
128+
129+
float cr::vtracker::CustomVTracker::getParam(cr::vtracker::VTrackerParam id)
130+
{
131+
// Check parameter ID.
132+
switch (id)
133+
{
134+
case cr::vtracker::VTrackerParam::SEARCH_WINDOW_WIDTH:
135+
{
136+
return (float)m_params.searchWindowWidth;
137+
}
138+
case cr::vtracker::VTrackerParam::SEARCH_WINDOW_HEIGHT:
139+
{
140+
return (float)m_params.searchWindowHeight;
141+
}
142+
case cr::vtracker::VTrackerParam::RECT_WIDTH:
143+
{
144+
return (float)m_params.rectWidth;
145+
}
146+
case cr::vtracker::VTrackerParam::RECT_HEIGHT:
147+
{
148+
return (float)m_params.rectHeight;
149+
}
150+
case cr::vtracker::VTrackerParam::LOST_MODE_OPTION:
151+
{
152+
return (float)m_params.lostModeOption;
153+
}
154+
case cr::vtracker::VTrackerParam::FRAME_BUFFER_SIZE:
155+
{
156+
return (float)m_params.frameBufferSize;
157+
}
158+
case cr::vtracker::VTrackerParam::MAX_FRAMES_IN_LOST_MODE:
159+
{
160+
return (float)m_params.maxFramesInLostMode;
161+
}
162+
case cr::vtracker::VTrackerParam::RECT_AUTO_SIZE:
163+
{
164+
return m_params.rectAutoSize ? 1.0f : 0.0f;
165+
}
166+
case cr::vtracker::VTrackerParam::RECT_AUTO_POSITION:
167+
{
168+
return m_params.rectAutoPosition ? 1.0f : 0.0f;
169+
}
170+
case cr::vtracker::VTrackerParam::MULTIPLE_THREADS:
171+
{
172+
return m_params.multipleThreads ? 1.0f : 0.0f;
173+
}
174+
case cr::vtracker::VTrackerParam::NUM_CHANNELS:
175+
{
176+
return (float)m_params.numChannels;
177+
}
178+
case cr::vtracker::VTrackerParam::TYPE:
179+
{
180+
return (float)m_params.type;
181+
}
182+
case cr::vtracker::VTrackerParam::CUSTOM_1:
183+
{
184+
return (float)m_params.custom1;
185+
}
186+
case cr::vtracker::VTrackerParam::CUSTOM_2:
187+
{
188+
return (float)m_params.custom2;
189+
}
190+
case cr::vtracker::VTrackerParam::CUSTOM_3:
191+
{
192+
return (float)m_params.custom3;
193+
}
194+
default:
195+
{
196+
return -1.0f;
197+
}
198+
}
199+
200+
return -1.0f;
201+
}
202+
203+
204+
205+
cr::vtracker::VTrackerParams cr::vtracker::CustomVTracker::getParams()
206+
{
207+
return m_params;
208+
}
209+
210+
211+
212+
bool cr::vtracker::CustomVTracker::executeCommand(
213+
cr::vtracker::VTrackerCommand id,
214+
float arg1,
215+
float arg2,
216+
float arg3)
217+
{
218+
// Check command ID.
219+
switch (id)
220+
{
221+
case cr::vtracker::VTrackerCommand::CAPTURE:
222+
{
223+
return true;
224+
}
225+
case cr::vtracker::VTrackerCommand::CAPTURE_PERCENTS:
226+
{
227+
return true;
228+
}
229+
case cr::vtracker::VTrackerCommand::RESET:
230+
{
231+
return true;
232+
}
233+
case cr::vtracker::VTrackerCommand::SET_INERTIAL_MODE:
234+
{
235+
return true;
236+
}
237+
case cr::vtracker::VTrackerCommand::SET_LOST_MODE:
238+
{
239+
return true;
240+
}
241+
case cr::vtracker::VTrackerCommand::SET_STATIC_MODE:
242+
{
243+
return true;
244+
}
245+
case cr::vtracker::VTrackerCommand::ADJUST_RECT_SIZE:
246+
{
247+
return true;
248+
}
249+
case cr::vtracker::VTrackerCommand::ADJUST_RECT_POSITION:
250+
{
251+
return true;
252+
}
253+
case cr::vtracker::VTrackerCommand::MOVE_RECT:
254+
{
255+
return true;
256+
}
257+
case cr::vtracker::VTrackerCommand::SET_RECT_POSITION:
258+
{
259+
return true;
260+
}
261+
case cr::vtracker::VTrackerCommand::SET_RECT_POSITION_PERCENTS:
262+
{
263+
return true;
264+
}
265+
case cr::vtracker::VTrackerCommand::MOVE_SEARCH_WINDOW:
266+
{
267+
return true;
268+
}
269+
case cr::vtracker::VTrackerCommand::SET_SEARCH_WINDOW_POSITION:
270+
{
271+
return true;
272+
}
273+
case cr::vtracker::VTrackerCommand::SET_SEARCH_WINDOW_POSITION_PERCENTS:
274+
{
275+
return true;
276+
}
277+
case cr::vtracker::VTrackerCommand::CHANGE_RECT_SIZE:
278+
{
279+
return true;
280+
}
281+
default:
282+
{
283+
return false;
284+
}
285+
}
286+
287+
return false;
288+
}
289+
290+
291+
292+
bool cr::vtracker::CustomVTracker::processFrame(cr::video::Frame& frame)
293+
{
294+
return true;
295+
}
296+
297+
298+
299+
void cr::vtracker::CustomVTracker::getImage(int type, cr::video::Frame& image)
300+
{
301+
302+
}

0 commit comments

Comments
 (0)