cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
svlTrackerMSBruteForce.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Balazs Vagvolgyi
7  Created on: 2007
8 
9  (C) Copyright 2006-2007 Johns Hopkins University (JHU), All Rights
10  Reserved.
11 
12 --- begin cisst license - do not edit ---
13 
14 This software is provided "as is" under an open source license, with
15 no warranty. The complete license can be found in license.txt and
16 http://www.cisst.org/cisst/license.txt.
17 
18 --- end cisst license ---
19 
20 */
21 
22 #ifndef _svlTrackerMSBruteForce_h
23 #define _svlTrackerMSBruteForce_h
24 
27 
28 // Always include last!
30 
31 
33 {
34 public:
36  virtual ~svlTrackerMSBruteForce();
37 
38  void SetErrorMetric(svlErrorMetric metric);
39  void SetScales(unsigned int scales);
40  void SetTemplateRadius(unsigned int radius);
41  void SetSearchRadius(unsigned int radius);
42  void SetOverwriteTemplates(bool enable);
43  void SetTemplateUpdate(bool enable);
44  void SetTemplateUpdateWeight(double weight);
45  void SetConfidenceThreshold(double threshold);
46  void SetHighPassFilterRadius(int radius);
47  void SetHighPassFilterStrength(double strength);
48  void SetNoiseFilterRadius(int radius);
49 
50  svlErrorMetric GetErrorMetric() const;
51  unsigned int GetScales() const;
52  unsigned int GetTemplateRadius() const;
53  unsigned int GetSearchRadius() const;
54  bool GetOverwriteTemplates() const;
55  bool GetTemplateUpdate() const;
56  double GetTemplateUpdateWeight() const;
57  double GetConfidenceThreshold() const;
58  int GetHighPassFilterRadius() const;
59  double GetHighPassFilterStrength() const;
60  int GetNoiseFilterRadius() const;
61 
62  int GetFeatureRef(unsigned int targetid, vctDynamicVectorRef<unsigned char> & feature);
63  int GetImageRef(unsigned int targetid, vctDynamicVectorRef<unsigned char> & feature);
64 
65  virtual int GetROIMargin();
66  virtual int SetTarget(unsigned int targetid, const svlTarget2D & target);
67  virtual int Initialize();
68  virtual void ResetTargets();
69  virtual int PreProcessImage(svlSampleImage & image, unsigned int videoch = SVL_LEFT);
70  virtual int Track(svlSampleImage & image, unsigned int videoch = SVL_LEFT);
71  virtual int Track(svlProcInfo* procInfo, svlSampleImage & image, unsigned int videoch = SVL_LEFT);
72  virtual void Release();
73 
74 protected:
75  std::string ScaleName;
76 
80  unsigned int FrameCounter;
81  unsigned int ThreadCounter;
83  unsigned int SearchRadiusRequested;
84  unsigned int TemplateRadius;
85  unsigned int SearchRadius;
90 
94 
96  unsigned int Scale;
97  unsigned char TemplateUpdateWeight;
98  unsigned char ConfidenceThreshold;
105 
106  virtual void CopyTemplate(unsigned char* img, unsigned char* tmp, unsigned int left, unsigned int top);
107  virtual void UpdateTemplate(unsigned char* img, unsigned char* tmp, unsigned int left, unsigned int top);
108  virtual void MatchTemplateSAD(unsigned char* img, unsigned char* tmp, int x, int y);
109  virtual void MatchTemplateSSD(unsigned char* img, unsigned char* tmp, int x, int y);
110  virtual void MatchTemplateNCC(unsigned char* img, unsigned char* tmp, int x, int y);
111  virtual void MatchTemplateFastNCC(unsigned char* img, unsigned char* tmp, int* zero_mean_tmp, int x, int y);
112  virtual void MatchTemplateNotQuiteNCC(unsigned char* img, unsigned char* tmp, int x, int y);
113  virtual void GetBestMatch(int &x, int &y, unsigned char &conf, bool higherbetter);
114  virtual void ShrinkImage(unsigned char* src, unsigned char* dst);
115  virtual void CalculateSumTables(unsigned char* img);
116 };
117 
118 #endif //_svlTrackerMSBruteForce_h
119 
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
virtual int Track(svlSampleImage &image, unsigned int videoch=SVL_LEFT)=0
svlSampleImageRGB * LowerScaleImage
Definition: svlTrackerMSBruteForce.h:102
Definition: svlTrackerMSBruteForce.h:32
svlErrorMetric
Definition: svlDefinitions.h:258
virtual int Initialize()
int HighPassFilterRadius
Definition: svlTrackerMSBruteForce.h:91
svlSampleImageRGB * PreviousRawImage
Definition: svlTrackerMSBruteForce.h:103
Dynamic vector referencing existing memory.
Definition: vctDynamicVectorRef.h:77
Definition: svlTypes.h:309
bool OverwriteTemplates
Definition: svlTrackerMSBruteForce.h:78
Definition: svlFilterImageTracker.h:151
bool TargetsAdded
Definition: svlTrackerMSBruteForce.h:77
unsigned int SearchRadius
Definition: svlTrackerMSBruteForce.h:85
bool TemplateUpdateEnabled
Definition: svlTrackerMSBruteForce.h:79
Implementation of a fixed-size vector using template metaprogramming.
Definition: vctFixedSizeVector.h:52
vctFixedSizeVector< vctDynamicMatrix< unsigned int >, 3 > SumTable
Definition: svlTrackerMSBruteForce.h:87
unsigned int FrameCounter
Definition: svlTrackerMSBruteForce.h:80
vctDynamicMatrix< int > MatchMap
Definition: svlTrackerMSBruteForce.h:86
svlTrackerMSBruteForce * LowerScale
Definition: svlTrackerMSBruteForce.h:99
int NoiseFilterRadius
Definition: svlTrackerMSBruteForce.h:93
Definition: svlSampleImage.h:35
svlSampleImageRGB * PreviousPreProcessedImage
Definition: svlTrackerMSBruteForce.h:104
Macros to export the symbols of cisstStereoVision (in a Dll).
#define SVL_LEFT
Definition: svlDefinitions.h:121
virtual void Release()
unsigned int ThreadCounter
Definition: svlTrackerMSBruteForce.h:81
virtual int SetTarget(unsigned int targetid, const svlTarget2D &target)
svlSampleImageRGB * PreProcessedImageTemp
Definition: svlTrackerMSBruteForce.h:101
svlErrorMetric Metric
Definition: svlTrackerMSBruteForce.h:95
vctFixedSizeVector< vctDynamicVector< int >, 128 > ZeroMeanTemplate
Definition: svlTrackerMSBruteForce.h:89
Definition: svlProcInfo.h:33
svlSampleImageRGB * PreProcessedImage
Definition: svlTrackerMSBruteForce.h:100
vctFixedSizeVector< vctDynamicMatrix< unsigned int >, 3 > SqSumTable
Definition: svlTrackerMSBruteForce.h:88
unsigned int TemplateRadiusRequested
Definition: svlTrackerMSBruteForce.h:82
std::string ScaleName
Definition: svlTrackerMSBruteForce.h:75
unsigned int TemplateRadius
Definition: svlTrackerMSBruteForce.h:84
double HighPassFilterStrength
Definition: svlTrackerMSBruteForce.h:92
virtual void ResetTargets()
unsigned int Scale
Definition: svlTrackerMSBruteForce.h:96
virtual int GetROIMargin()
virtual int PreProcessImage(svlSampleImage &image, unsigned int videoch=SVL_LEFT)
unsigned char ConfidenceThreshold
Definition: svlTrackerMSBruteForce.h:98
unsigned char TemplateUpdateWeight
Definition: svlTrackerMSBruteForce.h:97
unsigned int SearchRadiusRequested
Definition: svlTrackerMSBruteForce.h:83