![]() |
Visual Servoing Platform
version 3.3.0
|
#include <vpMomentAlpha.h>
Inheritance diagram for vpMomentAlpha:Public Member Functions | |
| vpMomentAlpha () | |
| vpMomentAlpha (const std::vector< double > &mu3_ref, double alpha_ref, double threshold=1e-6) | |
| virtual | ~vpMomentAlpha () |
| void | compute () |
| double | get () const |
| const char * | name () const |
| bool | is_ref () const |
| bool | is_symmetric () const |
| void | printDependencies (std::ostream &os) const |
Inherited functionalities from vpMoment | |
| const vpMomentObject & | getObject () const |
| void | linkTo (vpMomentDatabase &moments) |
| void | update (vpMomentObject &object) |
Protected Member Functions | |
| vpMomentDatabase & | getMoments () const |
Protected Attributes | |
| std::vector< double > | values |
Friends | |
| VISP_EXPORT std::ostream & | operator<< (std::ostream &os, const vpMomentAlpha &v) |
This class defines the orientation of the object inside the plane parallel to the object.
In general the value of the moment is computed in
interval by the formula
.
To obtain a
precision for non symmetric object, you have to specify a reference information. This reference information is an alpha computed using the previous formula in
. Obtaining this precision comes from third-order centered moments and this reference information.
Therefore there are two modes for vpMomentAlpha and one constructor per mode:
.
from the available moments and the reference information. By knowing the reference, it may distinguish in-plane rotations of
from rotations of
.The following code demonstrates a calculation of a reference alpha and then uses this alpha to estimate the orientation of the same object after performing a 180 degrees rotation. Therefore the first and second alpha should have opposite values.
This program outputs:
There is also testMomentAlpha.cpp example that shows how to compute alpha in the range
using arrow images as input. The code is given below:
From the first image we compute the 3rd order centered moments and the value of the reference alpha that is than used to compute the alpha moment in the range
. Running this example you will get:
Shortcuts for quickly getting those references exist in vpMomentCommon.
This moment depends on vpMomentCentered.
Definition at line 206 of file vpMomentAlpha.h.
| vpMomentAlpha::vpMomentAlpha | ( | ) |
Empty constructor. Initializes alpha moment as a reference alpha with a value in
. A default-constructed alpha moment may be used as a reference information for other alphas. A reference alpha is a class harbouring an alpha value computed for a
portion of the circle.
Definition at line 50 of file vpMomentAlpha.cpp.
| vpMomentAlpha::vpMomentAlpha | ( | const std::vector< double > & | mu3_ref, |
| double | alpha_ref, | ||
| double | threshold = 1e-6 |
||
| ) |
Common constructor. Initializes alpha moment as a non-reference alpha with a value computed in
when the object is non symmetric.
| mu3_ref | : Vector of 3rd order centered moments corresponding to the reference alpha in the following order: . |
| alpha_ref | : Value of the reference alpha that has mu3_ref 3rd order moments. |
| threshold | : Threshold used to determine object symmetry along its 2 axis. The object is declared symmetric if all the four 3rd order centered moments mu3_ref have values lower than this threshold. If the object is symmetric, the alpha angle is commuted in [ ]. If the object is non symmetric, the alpha angle is commuted in [ ] |
Definition at line 63 of file vpMomentAlpha.cpp.
|
inlinevirtual |
Definition at line 218 of file vpMomentAlpha.h.
|
virtual |
Compute the value of the alpha-moment. Depends on vpMomentCentered.
Implements vpMoment.
Definition at line 80 of file vpMomentAlpha.cpp.
|
inline |
Retrieve the orientation of the object as a single double value.
Definition at line 224 of file vpMomentAlpha.h.
|
inlineprotectedinherited |
Returns the linked moment database.
Definition at line 122 of file vpMoment.h.
|
inlineinherited |
Definition at line 149 of file vpMoment.h.
|
inline |
Returns true if the alpha moment was constructed as a reference with values in
, false otherwise.
Definition at line 233 of file vpMomentAlpha.h.
|
inline |
Returns true if the alpha moment is computed on a symmetric object along its two axis. Symmetry is computed using 3rd order centered moments
.
Definition at line 245 of file vpMomentAlpha.h.
|
inherited |
Links the moment to a database of moment primitives. If the moment depends on other moments, these moments must be linked to the same database.
| data_base | : database of moment primitives. |
Definition at line 97 of file vpMoment.cpp.
|
inlinevirtual |
|
virtual |
Prints the dependencies of alpha, namely centered moments mu11, mu20 ad mu02
Reimplemented from vpMoment.
Definition at line 165 of file vpMomentAlpha.cpp.
|
inherited |
Updates the moment with the current object. This does not compute any values.
| moment_object | : object descriptor of the current camera vision. |
Definition at line 114 of file vpMoment.cpp.
|
friend |
Prints the value of the major-axis orientation in degrees and rad
Definition at line 155 of file vpMomentAlpha.cpp.
|
protectedinherited |
Definition at line 117 of file vpMoment.h.