Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpFeatureVanishingPoint.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 * 2D vanishing point visual feature (Z coordinate in 3D space is infinity)
32 */
33
38
39#ifndef vpFeatureVanishingPoint_H
40#define vpFeatureVanishingPoint_H
41
42#include <visp3/core/vpConfig.h>
43#include <visp3/core/vpMatrix.h>
44#include <visp3/core/vpPoint.h>
45#include <visp3/visual_features/vpBasicFeature.h>
46
47#include <visp3/core/vpHomogeneousMatrix.h>
48#include <visp3/core/vpRGBa.h>
49
72class VISP_EXPORT vpFeatureVanishingPoint : public vpBasicFeature
73{
74public:
75 static unsigned int selectAlpha();
76 static unsigned int selectAtanOneOverRho();
77 static unsigned int selectOneOverRho();
78 static unsigned int selectX();
79 static unsigned int selectY();
80
81public:
83
84 vpFeatureVanishingPoint &buildFrom(const double &x, const double &y);
85
86 void display(const vpCameraParameters &cam, const vpImage<unsigned char> &I, const vpColor &color = vpColor::green,
87 unsigned int thickness = 1) const VP_OVERRIDE;
88 void display(const vpCameraParameters &cam, const vpImage<vpRGBa> &I, const vpColor &color = vpColor::green,
89 unsigned int thickness = 1) const VP_OVERRIDE;
90 vpFeatureVanishingPoint *duplicate() const VP_OVERRIDE;
91 vpColVector error(const vpBasicFeature &s_star, unsigned int select = (vpFeatureVanishingPoint::selectX() | vpFeatureVanishingPoint::selectY())) VP_OVERRIDE;
92
93 double get_x() const;
94 double get_y() const;
95 double getAtanOneOverRho() const;
96 double getOneOverRho() const;
97 double getAlpha() const;
98
99 void init() VP_OVERRIDE;
101 void print(unsigned int select = (vpFeatureVanishingPoint::selectX() | vpFeatureVanishingPoint::selectY())) const VP_OVERRIDE;
102
103 void set_x(double x);
104 void set_y(double y);
105 void set_xy(double x, double y);
106 void setAtanOneOverRho(double atan_one_over_rho);
107 void setOneOverRho(double one_over_rho);
108 void setAlpha(double alpha);
109
110protected:
111 unsigned int m_select; // Memory to know which features are used for display;
112};
113END_VISP_NAMESPACE
114#endif
virtual vpColVector error(const vpBasicFeature &s_star, unsigned int select=FEATURE_ALL)
virtual void init()=0
virtual vpMatrix interaction(unsigned int select=FEATURE_ALL)=0
Compute the interaction matrix from a subset of the possible features.
virtual void print(unsigned int select=FEATURE_ALL) const =0
Print the name of the feature.
virtual void display(const vpCameraParameters &cam, const vpImage< unsigned char > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const =0
virtual vpBasicFeature * duplicate() const =0
Generic class defining intrinsic camera parameters.
Implementation of column vector and the associated operations.
Class to define RGB colors available for display functionalities.
Definition vpColor.h:157
static const vpColor green
Definition vpColor.h:201
static unsigned int selectAtanOneOverRho()
void set_y(double y)
Set vanishing point feature value.
void setAlpha(double alpha)
Set vanishing point feature value.
double getOneOverRho() const
Get vanishing point feature value.
double getAlpha() const
Get vanishing point feature value.
void setAtanOneOverRho(double atan_one_over_rho)
Set vanishing point feature value.
void setOneOverRho(double one_over_rho)
Set vanishing point feature value.
double getAtanOneOverRho() const
Get vanishing point feature value.
void set_xy(double x, double y)
Set vanishing point visual feature from cartesian coordinates. Same as buildFrom().
static unsigned int selectX()
Select visual feature .
static unsigned int selectOneOverRho()
vpFeatureVanishingPoint & buildFrom(const double &x, const double &y)
Set vanishing point visual feature from cartesian coordinates. Same as set_xy().
double get_y() const
Get vanishing point feature value.
double get_x() const
Get vanishing point feature value.
vpFeatureVanishingPoint()
Default constructor that calls init().
static unsigned int selectY()
Select visual feature .
void set_x(double x)
Set vanishing point feature value.
Definition of the vpImage class member functions.
Definition vpImage.h:131
Implementation of a matrix and operations on matrices.
Definition vpMatrix.h:175