This file is indexed.

/usr/include/x86_64-linux-gnu/visp3/me/vpMe.h is in libvisp-me-dev 3.0.0-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
/****************************************************************************
 *
 * This file is part of the ViSP software.
 * Copyright (C) 2005 - 2015 by Inria. All rights reserved.
 *
 * This software is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * ("GPL") version 2 as published by the Free Software Foundation.
 * See the file LICENSE.txt at the root directory of this source
 * distribution for additional information about the GNU GPL.
 *
 * For using ViSP with software that can not be combined with the GNU
 * GPL, please contact Inria about acquiring a ViSP Professional
 * Edition License.
 *
 * See http://visp.inria.fr for more information.
 *
 * This software was developed at:
 * Inria Rennes - Bretagne Atlantique
 * Campus Universitaire de Beaulieu
 * 35042 Rennes Cedex
 * France
 *
 * If you have questions regarding the use of this file, please contact
 * Inria at visp@inria.fr
 *
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 *
 * Description:
 * Moving edges.
 *
 * Authors:
 * Eric Marchand
 * Andrew Comport
 * Aurelien Yol
 *
 *****************************************************************************/

/*!
	\file vpMe.h
	\brief Moving edges
*/

#ifndef vpMe_H
#define vpMe_H

#include <visp3/core/vpMatrix.h>
#include <visp3/core/vpMath.h>
#include <visp3/core/vpImage.h>

/*!
  \class vpMe
  \ingroup module_me

  This class defines predetermined masks for sites and holds moving edges
  tracking parameters.
 */
class VISP_EXPORT vpMe
{
#ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
public:
#else
private:
#endif
  double threshold ;//! Likelihood ratio threshold
  double mu1; //! Contrast continuity parameter (left boundary)
  double mu2; //! Contrast continuity parameter (right boundary)
  double min_samplestep;
  unsigned int anglestep;
  int mask_sign;
  unsigned int range; //! Seek range - on both sides of the reference pixel
  double sample_step; //! Distance between sampled points (in pixels)
  int ntotal_sample;
  int points_to_track;
  //! convolution masks' size in pixels (masks are square), \warning should not be public, use setMaskSize() and getMaskSize() instead (kept public for compatibility reasons).
  unsigned int mask_size;
  //! the number of convolution masks available for tracking ; defines resolution. \warning Should not be public, use setMaskNumber() and getMaskNumber() instead (kept public for compatibility reasons).
  unsigned int n_mask;
  //strip: defines a "security strip" such that Seek_Extremities()
  //cannot return a new extremity which is too close to the
  //frame borders which may cause Get_Sampling_Grid to refuse
  //the that extremity
  int strip;
  //int graph ;
  vpMatrix *mask ; //! Array of matrices defining the different masks (one for every angle step).

public:
  vpMe() ;
  vpMe(const vpMe &me) ;
  virtual ~vpMe() ;
  
  const vpMe& operator=(const vpMe &me);


  void initMask() ;// convolution masks - offset computation
  void checkSamplestep(double &a) { if(a < min_samplestep) a = min_samplestep ; }
  void print( ) ;
  
  /*!
    Get the matrix of the mask.

    \return the value of mask.
  */
  inline vpMatrix* getMask() const { return mask; }

  /*!
    Set the number of mask applied to determine the object contour. The number of mask determines the precision of
    the normal of the edge for every sample. If precision is 2deg, then there
    are 360/2 = 180 masks.

    \param a : the number of mask.
  */
  void setMaskNumber(const unsigned int &a) ;
  
  /*!
    Return the number of mask  applied to determine the object contour. The number of mask determines the precision of
    the normal of the edge for every sample. If precision is 2deg, then there
    are 360/2 = 180 masks.

    \return the current number of mask.
  */
  inline unsigned int getMaskNumber() const { return n_mask; }
  
  /*!
    Set the mask sign.
    
    \param a : new mask sign.
  */
  void setMaskSign(const int &a){ mask_sign = a ; }
  
  /*!
    Return the mask sign.

    \return Value of mask_sign.
  */
  inline int getMaskSign() const { return mask_sign; }
  
  /*!
    Set the mask size (in pixel) used to compute the image gradient and determine the object contour. 
    The mask size defines the size of the convolution mask used to detect an edge.
    
    \param a : new mask size.
  */
  void setMaskSize(const unsigned int &a);
  
  /*!
    Return the actual mask size (in pixel) used to compute the image gradient and determine the object contour. 
    The mask size defines the size of the convolution mask used to detect an edge.

    \return the current mask size.
  */
  inline unsigned int getMaskSize() const { return mask_size; }
  
  /*!
    Set the minimum image contrast allowed to detect a contour.
    
    \param mu_1 : new mu1.
  */
  void setMu1(const double &mu_1) { this->mu1 = mu_1  ; }
  
  /*!
    Get the minimum image contrast allowed to detect a contour.

    \return Value of mu1.
  */
  inline double getMu1() const { return mu1; }
  
  /*!
    Set the maximum image contrast allowed to detect a contour.
    
    \param mu_2 : new mu2.
  */
  void setMu2(const double &mu_2) { this->mu2 = mu_2  ; }
  
  /*!
    Get the maximum image contrast allowed to detect a contour.

    \return Value of mu2.
  */
  inline double getMu2() const { return mu2; }
  
  /*!
    Set how many discretizied points are used to track the feature.
    
    \param nb : new total number of sample.
  */
  void setNbTotalSample(const int &nb) { ntotal_sample = nb; }
  
  /*!
    Get how many discretizied points are used to track the feature.

    \return Value of ntotal_sample.
  */
  inline int getNbTotalSample() const { return ntotal_sample; }
  
  /*! 
    Set the number of points to track.
    
    \param n : new number of points to track.
    
    \warning This method is useful only for the vpMeNurbsTracker.  
  */
  void setPointsToTrack(const int &n) { points_to_track = n; }
  
  /*!
    Return the number of points to track.

    \return Value of points_to_track.
  */
  inline int getPointsToTrack() const { return points_to_track ; }
  
  /*!
    Set the seek range on both sides of the reference pixel.
    
    \param r : new range.
  */
  void setRange(const unsigned int &r) { range = r  ; }
  
  /*!
    Return the seek range on both sides of the reference pixel.

    \return Value of range.
  */
  inline unsigned int getRange() const { return range; }
  
  /*!
    Set the angle step.
    
    \param a : new angle step.
  */
  void setAngleStep(const unsigned int &a) { anglestep = a ; }
  
  /*!
    Return the angle step.

    \return Value of anglestep.
  */
  inline unsigned int getAngleStep() const { return anglestep; }
  
  /*!
    Set the minimum allowed sample step. Useful to specify a lower bound when the sample step is changed.
    
    \param min : new minimum sample step.
  */
  void setMinSampleStep(const double &min) { min_samplestep = min ; }
  
  /*!
    Get the minimum allowed sample step. Useful to specify a lower bound when the sample step is changed.

    \return Value of min_samplestep.
  */
  inline double getMinSampleStep() const { return min_samplestep; }
  
  /*!
    Set the minimum distance in pixel between two discretized points.
    
    \param s : new sample_step.
  */
  void setSampleStep(const double &s) { sample_step = s ; }
  
  /*!
    Get the minimum distance in pixel between two discretized points.

    \return Value of sample_step.
  */
  inline double getSampleStep() const { return sample_step ; }
  
  /*!
    Set the number of pixels that are ignored around the image borders.
    
    \param a : new strip.
  */
  void setStrip(const int &a) { strip = a ; }
  
  /*!
    Get the number of pixels that are ignored around the image borders.

    \return the value of strip.
  */
  inline int getStrip() const { return strip; }
  
  /*!
    Set the likelihood threshold used to determined if the moving edge is valid or not.
    
    \param t : new threshold.
  */
  void setThreshold(const double &t) { threshold = t ; }
  
  /*!
    Return the likelihood threshold used to determined if the moving edge is valid or not.

    \return Value of threshold.
  */
  inline double getThreshold() const { return threshold; }
};


#endif