Visual Servoing Platform
version 3.7.0
Toggle main menu visibility
Loading...
Searching...
No Matches
vpFeatureBuilder.h
1
/*
2
* ViSP, open source Visual Servoing Platform software.
3
* Copyright (C) 2005 - 2025 by Inria. All rights reserved.
4
*
5
* This software is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
* See the file LICENSE.txt at the root directory of this source
10
* distribution for additional information about the GNU GPL.
11
*
12
* For using ViSP with software that can not be combined with the GNU
13
* GPL, please contact Inria about acquiring a ViSP Professional
14
* Edition License.
15
*
16
* See https://visp.inria.fr for more information.
17
*
18
* This software was developed at:
19
* Inria Rennes - Bretagne Atlantique
20
* Campus Universitaire de Beaulieu
21
* 35042 Rennes Cedex
22
* France
23
*
24
* If you have questions regarding the use of this file, please contact
25
* Inria at visp@inria.fr
26
*
27
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29
*
30
* Description:
31
* Conversion between tracker and visual feature.
32
*/
33
38
39
#ifndef vpFeatureBuilder_H
40
#define vpFeatureBuilder_H
41
42
43
#include <visp3/core/vpConfig.h>
44
45
// tracker
46
#ifdef VISP_HAVE_MODULE_BLOB
47
#include <visp3/blob/vpDot.h>
48
#include <visp3/blob/vpDot2.h>
49
#endif
50
51
#ifdef VISP_HAVE_MODULE_ME
52
#include <visp3/me/vpMeEllipse.h>
53
#include <visp3/me/vpMeLine.h>
54
#endif
55
56
// forward projection tracker
57
#include <visp3/core/vpCircle.h>
58
#include <visp3/core/vpCylinder.h>
59
#include <visp3/core/vpLine.h>
60
#include <visp3/core/vpPoint.h>
61
#include <visp3/core/vpSphere.h>
62
63
// visual feature
64
#include <visp3/visual_features/vpFeatureEllipse.h>
65
#include <visp3/visual_features/vpFeatureLine.h>
66
#include <visp3/visual_features/vpFeaturePoint.h>
67
#include <visp3/visual_features/vpFeaturePoint3D.h>
68
#include <visp3/visual_features/vpFeaturePointPolar.h>
69
#include <visp3/visual_features/vpFeatureSegment.h>
70
#include <visp3/visual_features/vpFeatureThetaU.h>
71
#include <visp3/visual_features/vpFeatureTranslation.h>
72
#include <visp3/visual_features/vpFeatureVanishingPoint.h>
73
74
// others
75
#include <visp3/core/vpImagePoint.h>
76
77
// pixel / meter conversion
78
#include <visp3/core/vpCameraParameters.h>
79
#include <visp3/core/vpMeterPixelConversion.h>
80
#include <visp3/core/vpPixelMeterConversion.h>
81
82
BEGIN_VISP_NAMESPACE
98
class
VISP_EXPORT
vpFeatureBuilder
99
{
100
public
:
101
// create vpFeaturePoint feature
102
#ifdef VISP_HAVE_MODULE_BLOB
103
static
void
create
(
vpFeaturePoint
&s,
const
vpCameraParameters
&cam,
const
vpDot
&d);
104
static
void
create
(
vpFeaturePoint
&s,
const
vpCameraParameters
&cam,
const
vpDot2
&d);
105
#endif
106
static
void
create
(
vpFeaturePoint
&s,
const
vpCameraParameters
&cam,
const
vpImagePoint
&t);
107
static
void
create
(
vpFeaturePoint
&s,
const
vpPoint
&p);
108
static
void
create
(
vpFeaturePoint
&s,
const
vpCameraParameters
&goodCam,
const
vpCameraParameters
&wrongCam,
109
const
vpPoint
&p);
110
111
#ifdef VISP_HAVE_MODULE_BLOB
112
static
void
create
(
vpFeatureSegment
&s,
const
vpCameraParameters
&cam,
const
vpDot
&d1,
const
vpDot
&d2);
113
static
void
create
(
vpFeatureSegment
&s,
const
vpCameraParameters
&cam,
const
vpDot2
&d1,
const
vpDot2
&d2);
114
#endif
115
static
void
create
(
vpFeatureSegment
&s,
const
vpCameraParameters
&cam,
const
vpImagePoint
&ip1,
116
const
vpImagePoint
&ip2);
117
static
void
create
(
vpFeatureSegment
&s,
vpPoint
&P1,
vpPoint
&P2);
118
119
// create vpFeaturePointPolar feature
120
#ifdef VISP_HAVE_MODULE_BLOB
121
static
void
create
(
vpFeaturePointPolar
&s,
const
vpCameraParameters
&cam,
const
vpDot
&dot);
122
static
void
create
(
vpFeaturePointPolar
&s,
const
vpCameraParameters
&cam,
const
vpDot2
&dot);
123
#endif
124
static
void
create
(
vpFeaturePointPolar
&s,
const
vpCameraParameters
&cam,
const
vpImagePoint
&iP);
125
static
void
create
(
vpFeaturePointPolar
&s,
const
vpPoint
&p);
126
static
void
create
(
vpFeaturePointPolar
&s,
const
vpCameraParameters
&goodCam,
const
vpCameraParameters
&wrongCam,
127
const
vpPoint
&p);
128
129
// create vpFeaturePoint3D feature
130
static
void
create
(
vpFeaturePoint3D
&s,
const
vpPoint
&p);
131
132
// create vpFeatureLine feature
133
static
void
create
(
vpFeatureLine
&s,
const
vpLine
&l);
134
static
void
create
(
vpFeatureLine
&s,
const
vpCylinder
&c,
int
line);
135
136
#ifdef VISP_HAVE_MODULE_ME
137
static
void
create
(
vpFeatureLine
&s,
const
vpCameraParameters
&cam,
const
vpMeLine
&mel);
138
#endif
139
141
static
void
create
(
vpFeatureEllipse
&s,
const
vpCircle
&c);
142
static
void
create
(
vpFeatureEllipse
&s,
const
vpSphere
&sphere);
143
#ifdef VISP_HAVE_MODULE_BLOB
144
static
void
create
(
vpFeatureEllipse
&s,
const
vpCameraParameters
&cam,
const
vpDot
&blob);
145
static
void
create
(
vpFeatureEllipse
&s,
const
vpCameraParameters
&cam,
const
vpDot2
&blob);
146
#endif
147
148
#ifdef VISP_HAVE_MODULE_ME
149
static
void
create
(
vpFeatureEllipse
&s,
const
vpCameraParameters
&cam,
const
vpMeEllipse
&ellipse);
150
#endif
151
152
// To keep compat with previous releases, we set cartesian coordinates as default initialising select var to selectX()
153
// or selectY()
154
static
void
create
(
vpFeatureVanishingPoint
&s,
const
vpPoint
&p,
155
unsigned
int
select = (
vpFeatureVanishingPoint::selectX
() |
vpFeatureVanishingPoint::selectY
()));
156
static
void
create
(
vpFeatureVanishingPoint
&s,
const
vpFeatureLine
&l1,
const
vpFeatureLine
&l2,
157
unsigned
int
select = (
vpFeatureVanishingPoint::selectX
() |
vpFeatureVanishingPoint::selectY
()));
158
static
void
create
(
vpFeatureVanishingPoint
&s,
const
vpLine
&l1,
const
vpLine
&l2,
159
unsigned
int
select = (
vpFeatureVanishingPoint::selectX
() |
vpFeatureVanishingPoint::selectY
()));
160
// This function is new that's why select is not initialized
161
static
void
create
(
vpFeatureVanishingPoint
&s,
const
vpCameraParameters
&cam,
const
vpImagePoint
&line1_ip1,
162
const
vpImagePoint
&line1_ip2,
const
vpImagePoint
&line2_ip1,
const
vpImagePoint
&line2_ip2,
163
unsigned
int
select);
164
};
165
END_VISP_NAMESPACE
166
#endif
vpCameraParameters
Generic class defining intrinsic camera parameters.
Definition
vpCameraParameters.h:311
vpCircle
Class that defines a 3D circle in the object frame and allows forward projection of a 3D circle in th...
Definition
vpCircle.h:87
vpCylinder
Class that defines a 3D cylinder in the object frame and allows forward projection of a 3D cylinder i...
Definition
vpCylinder.h:101
vpDot2
This tracker is meant to track a blob (connex pixels with same gray level) on a vpImage.
Definition
vpDot2.h:127
vpDot
This tracker is meant to track a dot (connected pixels with same gray level) on a vpImage.
Definition
vpDot.h:123
vpFeatureBuilder
Class that defines conversion between trackers and visual features.
Definition
vpFeatureBuilder.h:99
vpFeatureBuilder::create
static void create(vpFeaturePoint &s, const vpCameraParameters &cam, const vpDot &d)
Definition
vpFeatureBuilderPoint.cpp:90
vpFeatureEllipse
Class that defines 2D ellipse visual feature.
Definition
vpFeatureEllipse.h:56
vpFeatureLine
Class that defines a 2D line visual feature which is composed by two parameters that are and ,...
Definition
vpFeatureLine.h:200
vpFeaturePoint3D
Class that defines the 3D point visual feature.
Definition
vpFeaturePoint3D.h:212
vpFeaturePointPolar
Class that defines 2D image point visual feature with polar coordinates described in corke09a.
Definition
vpFeaturePointPolar.h:262
vpFeaturePoint
Class that defines a 2D point visual feature which is composed by two parameters that are the cartes...
Definition
vpFeaturePoint.h:190
vpFeatureSegment
Class that defines a 2D segment visual features. This class allow to consider two sets of visual feat...
Definition
vpFeatureSegment.h:68
vpFeatureVanishingPoint
Definition
vpFeatureVanishingPoint.h:73
vpFeatureVanishingPoint::selectX
static unsigned int selectX()
Select visual feature .
Definition
vpFeatureVanishingPoint.cpp:432
vpFeatureVanishingPoint::selectY
static unsigned int selectY()
Select visual feature .
Definition
vpFeatureVanishingPoint.cpp:435
vpImagePoint
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Definition
vpImagePoint.h:82
vpLine
Class that defines a 3D line in the object frame and allows forward projection of the line in the cam...
Definition
vpLine.h:103
vpMeEllipse
Class that tracks an ellipse or a circle using moving edges.
Definition
vpMeEllipse.h:100
vpMeLine
Class that tracks in an image a line moving edges.
Definition
vpMeLine.h:157
vpPoint
Class that defines a 3D point in the object frame and allows forward projection of a 3D point in the ...
Definition
vpPoint.h:79
vpSphere
Class that defines a 3D sphere in the object frame and allows forward projection of a 3D sphere in th...
Definition
vpSphere.h:80
BEGIN_VISP_NAMESPACE
Definition
vpMbtDistanceCircle.cpp:55
modules
visual_features
include
visp3
visual_features
vpFeatureBuilder.h
Generated by
1.17.0