Hugintrunk  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CircularKeyPointDescriptor.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2007-2009 Anael Orlinski & Pablo d'Angelo
3 *
4 * This file is part of Panomatic.
5 *
6 * Panomatic is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * Panomatic is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with Panomatic; if not, write to the Free Software
18 * <http://www.gnu.org/licenses/>.
19 */
20 
21 #ifndef __lfeat_circularkeypointdescriptor_h
22 #define __lfeat_circularkeypointdescriptor_h
23 
24 #include "Image.h"
25 #include "KeyPoint.h"
26 #include "KeyPointDescriptor.h"
27 
28 namespace lfeat
29 {
30 
31 struct SampleSpec
32 {
33  double x,y, size;
34 };
35 
37 {
38 public:
40  std::vector<int> rings = std::vector<int>(),
41  std::vector<double> ring_radius = std::vector<double>(),
42  std::vector<double> ring_gradient_width = std::vector<double>(),
43  int ori_bins=18, double ori_sample_scale=4, int ori_gridsize=11);
45 
46  void makeDescriptor(KeyPoint& ioKeyPoint) const;
47  int getDescriptorLength() const
48  {
49  return _descrLen;
50  };
51  int assignOrientation(KeyPoint& ioKeyPoint, double angles[4]) const;
52 
53 protected:
54  void createDescriptor(KeyPoint& ioKeyPoint) const;
55 
56 private:
57  // orig image info
59  int _vecLen;
61  int _descrLen;
63  const int _ori_nbins;
64  const double _ori_sample_scale;
65  const int _ori_gridsize;
66  double* _ori_hist;
67 };
68 
69 }
70 
71 #endif //__lfeat_keypointdescriptor_h
Abstract base class for all keypoint descriptors.
#define LFIMPEX
Definition: hugin_shared.h:41