MRPT  2.0.4
CDetectableObject.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
10 #pragma once
11 
12 #include <mrpt/obs/CObservation.h>
14 #include <cmath>
15 
16 namespace mrpt::detectors
17 {
18 /** Base class that contains common atributes and functions of detectable
19  * objects.
20  * It was initially thought for detected objects in images from cams, but it's
21  * easily
22  * expandable to other source types (f.i. scanners).
23  * \ingroup mrpt_detectors_grp
24  */
26 {
28 
29  public:
30  /** Must be an unique id for each detectable object */
31  std::string m_id;
32 
33  /** Observation wich contain the deteted object */
35 
37  {
38  obs = newObs;
39  };
40 
41 }; // End of class
42 
44 {
46 
47  public:
48  /** 2D Coordinates of detected object */
49  float m_x, m_y;
50  /** Size of detected object */
51  float m_height, m_width;
52 
53  /** Extra constructor */
54  CDetectable2D(int x = 0, int y = 0, int height = 0, int width = 0)
55  : m_x(x), m_y(y), m_height(height), m_width(width){};
56 
57  /** Copy pointer content constructor */
58  CDetectable2D(const CDetectable2D* d) { *this = *d; };
59  /** Compute distance between centers of two detectable 2D objects.
60  * \return calculated distance.
61  */
62  inline double distanceTo(const CDetectable2D& d2)
63  {
64  // Calculate objects centers
65  double c_x1 = (m_x + m_width / 2);
66  double c_x2 = (d2.m_x + d2.m_width / 2);
67  double c_y1 = (m_y + m_height / 2);
68  double c_y2 = (d2.m_y + d2.m_height / 2);
69 
70  return std::sqrt(std::pow(c_x1 - c_x2, 2) + pow(c_y1 - c_y2, 2));
71  };
72 };
73 
75 {
77 
78  public:
79  CDetectable3D() = default;
80 
81  CDetectable3D(const CDetectable2D::Ptr& object2d);
82 
83  /** Copy pointer content constructor */
84  CDetectable3D(const CDetectable3D* d) { *this = *d; };
85  /** Z coordinate of detected object */
86  float m_z;
87 
88 }; // End of class
89 } // namespace mrpt::detectors
mrpt::detectors::CDetectableObject::obs
mrpt::obs::CObservation::Ptr obs
Observation wich contain the deteted object.
Definition: CDetectableObject.h:34
mrpt::obs::CObservation::Ptr
std::shared_ptr< CObservation > Ptr
Definition: CObservation.h:45
mrpt::detectors
Definition: CCascadeClassifierDetection.h:14
DEFINE_SERIALIZABLE
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
Definition: CSerializable.h:152
mrpt::detectors::CDetectable2D::distanceTo
double distanceTo(const CDetectable2D &d2)
Compute distance between centers of two detectable 2D objects.
Definition: CDetectableObject.h:62
mrpt::detectors::CDetectable3D::m_z
float m_z
Z coordinate of detected object.
Definition: CDetectableObject.h:84
mrpt::detectors::CDetectable2D::m_x
float m_x
2D Coordinates of detected object
Definition: CDetectableObject.h:49
mrpt::detectors::CDetectable2D::Ptr
std::shared_ptr< mrpt::detectors ::CDetectable2D > Ptr
Definition: CDetectableObject.h:45
mrpt::detectors::CDetectableObject::m_id
std::string m_id
Must be an unique id for each detectable object.
Definition: CDetectableObject.h:31
mrpt::detectors::CDetectable2D::m_width
float m_width
Definition: CDetectableObject.h:51
mrpt::serialization::CSerializable
The virtual base class which provides a unified interface for all persistent objects in MRPT.
Definition: CSerializable.h:30
mrpt::detectors::CDetectableObject::setObservation
void setObservation(mrpt::obs::CObservation::Ptr newObs)
Definition: CDetectableObject.h:36
DEFINE_VIRTUAL_SERIALIZABLE
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
Definition: CSerializable.h:171
mrpt::detectors::CDetectable2D
Definition: CDetectableObject.h:43
mrpt::detectors::CDetectable3D
Definition: CDetectableObject.h:74
mrpt::detectors::CDetectable3D::CDetectable3D
CDetectable3D()=default
mrpt::detectors::CDetectable2D::CDetectable2D
CDetectable2D(const CDetectable2D *d)
Copy pointer content constructor.
Definition: CDetectableObject.h:58
mrpt::detectors::CDetectable2D::m_y
float m_y
Definition: CDetectableObject.h:49
CObservation.h
mrpt::detectors::CDetectable2D::m_height
float m_height
Size of detected object.
Definition: CDetectableObject.h:51
mrpt::detectors::CDetectableObject
Base class that contains common atributes and functions of detectable objects.
Definition: CDetectableObject.h:25
CSerializable.h
mrpt::detectors::CDetectable2D::CDetectable2D
CDetectable2D(int x=0, int y=0, int height=0, int width=0)
Extra constructor.
Definition: CDetectableObject.h:54



Page generated by Doxygen 1.8.17 for MRPT 2.0.4 at Sun Jul 19 15:15:43 UTC 2020