General Information
===========
This is a c++ implementation of the elongated objects tracking algorithm described in [1]. 
It includes the header and source files, contained in 'headers' and 'src' folders, respectively.
It also includes the 'dataset' folder containing several video sequences of elongated objects. 
The code was tested under Windows 7, with OpenCV 3.0.

References
==========
When using this code and/or "guitarstring", "roboticarm", "toytram" sequences for your research, please cite:
[1] D. Wesierski, P. Horain "Pose-Configurable Generic Tracking of Elongated Objects", 
International Conference on Computer Vision (ICCV), 2013

When using the "suture" sequence, please cite:
[2] N. Padoy, G.  Hager "Deformable  tracking  of  textured curvilinear objects", 
British Machine Vision Conference (BMVC), 2012.

When using the "board", "box", "lemming", "liquor" sequences, please cite:
[3] J. Santner, C. Leistner, A. Saffari, T. Pock, H. Bischof "PROST: Parallel robust online simple tracking", 
Computer Vision and Pattern Recognition (CVPR), 2010.

Initialization
==============
Each sequence in the 'dataset' folder has a configuration txt file, which determines (1) the path to the sequence, and 
(2) [segments x parts] matrix. Each part is defined by a bounding box [x,y,w,h]. Each segment is defined by several bboxes.
An anchor part, joining two neighbor segments, belongs to the next segment (i.e., next matrix row/file line).
At the top of the 'main.cpp' file, there are other init parameters of the tracker, as well. 

Using the code
========================
0. Requirements: OpenCV library
1. Create a new project e.g. in MS Visual or Eclipse
2. Attach the folders to the project
3. Setup the 'config.txt' file for initialization
4. 'Build' and 'Run' the project
5. BBox track for each part is stored in 'result.txt' (1 frame = 1 row)

Contact
========
In case of any questions, please write to 'daniel.wesierski@pg.gda.pl'