opencv/modules/viz/doc/widget.rst

949 lines
30 KiB
ReStructuredText
Raw Normal View History

2013-09-02 01:34:17 +08:00
Widget
======
2013-09-02 02:12:31 +08:00
2013-09-02 01:34:17 +08:00
.. highlight:: cpp
2013-09-08 20:26:58 +08:00
In this section, the widget framework is explained. Widgets represent
2D or 3D objects, varying from simple ones such as lines to complex one such as
point clouds and meshes.
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
Widgets are **implicitly shared**. Therefore, one can add a widget to the scene,
and modify the widget without re-adding the widget.
.. code-block:: cpp
...
/// Create a cloud widget
2013-09-15 22:26:53 +08:00
viz::WCloud cw(cloud, viz::Color::red());
2013-09-08 20:26:58 +08:00
/// Display it in a window
myWindow.showWidget("CloudWidget1", cw);
/// Modify it, and it will be modified in the window.
cw.setColor(viz::Color::yellow());
...
viz::Widget
-----------
2013-09-02 01:34:17 +08:00
.. ocv:class:: Widget
2013-09-08 20:26:58 +08:00
Base class of all widgets. Widget is implicitly shared. ::
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
class CV_EXPORTS Widget
{
public:
Widget();
Widget(const Widget& other);
Widget& operator=(const Widget& other);
~Widget();
//! Create a widget directly from ply file
static Widget fromPlyFile(const String &file_name);
//! Rendering properties of this particular widget
void setRenderingProperty(int property, double value);
double getRenderingProperty(int property) const;
//! Casting between widgets
template<typename _W> _W cast();
private:
/* hidden */
};
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
viz::Widget::fromPlyFile
------------------------
2013-09-02 01:34:17 +08:00
Creates a widget from ply file.
.. ocv:function:: static Widget fromPlyFile(const String &file_name)
2013-09-02 02:12:31 +08:00
:param file_name: Ply file name.
2013-09-08 20:26:58 +08:00
viz::Widget::setRenderingProperty
---------------------------------
2013-09-02 01:34:17 +08:00
Sets rendering property of the widget.
.. ocv:function:: void setRenderingProperty(int property, double value)
2013-09-02 02:12:31 +08:00
:param property: Property that will be modified.
:param value: The new value of the property.
2013-09-08 20:26:58 +08:00
**Rendering property** can be one of the following:
* **POINT_SIZE**
* **OPACITY**
* **LINE_WIDTH**
* **FONT_SIZE**
* **REPRESENTATION**: Expected values are
* **REPRESENTATION_POINTS**
* **REPRESENTATION_WIREFRAME**
* **REPRESENTATION_SURFACE**
* **IMMEDIATE_RENDERING**:
* Turn on immediate rendering by setting the value to ``1``.
* Turn off immediate rendering by setting the value to ``0``.
* **SHADING**: Expected values are
* **SHADING_FLAT**
* **SHADING_GOURAUD**
* **SHADING_PHONG**
viz::Widget::getRenderingProperty
---------------------------------
2013-09-02 01:34:17 +08:00
Returns rendering property of the widget.
.. ocv:function:: double getRenderingProperty(int property) const
2013-09-02 02:12:31 +08:00
:param property: Property.
2013-09-08 20:26:58 +08:00
**Rendering property** can be one of the following:
* **POINT_SIZE**
* **OPACITY**
* **LINE_WIDTH**
* **FONT_SIZE**
* **REPRESENTATION**: Expected values are
* **REPRESENTATION_POINTS**
* **REPRESENTATION_WIREFRAME**
* **REPRESENTATION_SURFACE**
* **IMMEDIATE_RENDERING**:
* Turn on immediate rendering by setting the value to ``1``.
* Turn off immediate rendering by setting the value to ``0``.
* **SHADING**: Expected values are
* **SHADING_FLAT**
* **SHADING_GOURAUD**
* **SHADING_PHONG**
viz::Widget::cast
-----------------
2013-09-02 01:34:17 +08:00
Casts a widget to another.
.. ocv:function:: template<typename _W> _W cast()
2013-09-08 20:26:58 +08:00
.. code-block:: cpp
// Create a sphere widget
2013-09-15 22:26:53 +08:00
viz::WSphere sw(Point3f(0.0f,0.0f,0.0f), 0.5f);
2013-09-08 20:26:58 +08:00
// Cast sphere widget to cloud widget
2013-09-15 22:26:53 +08:00
viz::WCloud cw = sw.cast<viz::WCloud>();
2013-09-08 20:26:58 +08:00
.. note:: 3D Widgets can only be cast to 3D Widgets. 2D Widgets can only be cast to 2D Widgets.
viz::WidgetAccessor
-------------------
2013-09-02 02:12:31 +08:00
.. ocv:class:: WidgetAccessor
This class is for users who want to develop their own widgets using VTK library API. ::
struct CV_EXPORTS WidgetAccessor
{
static vtkSmartPointer<vtkProp> getProp(const Widget &widget);
static void setProp(Widget &widget, vtkSmartPointer<vtkProp> prop);
};
2013-09-08 20:26:58 +08:00
viz::WidgetAccessor::getProp
----------------------------
Returns ``vtkProp`` of a given widget.
.. ocv:function:: static vtkSmartPointer<vtkProp> getProp(const Widget &widget)
:param widget: Widget whose ``vtkProp`` is to be returned.
.. note:: vtkProp has to be down cast appropriately to be modified.
.. code-block:: cpp
vtkActor * actor = vtkActor::SafeDownCast(viz::WidgetAccessor::getProp(widget));
viz::WidgetAccessor::setProp
----------------------------
Sets ``vtkProp`` of a given widget.
.. ocv:function:: static void setProp(Widget &widget, vtkSmartPointer<vtkProp> prop)
:param widget: Widget whose ``vtkProp`` is to be set.
:param prop: A ``vtkProp``.
viz::Widget3D
-------------
2013-09-02 01:34:17 +08:00
.. ocv:class:: Widget3D
Base class of all 3D widgets. ::
2013-09-02 02:12:31 +08:00
class CV_EXPORTS Widget3D : public Widget
{
public:
Widget3D() {}
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
void setPose(const Affine3f &pose);
void updatePose(const Affine3f &pose);
Affine3f getPose() const;
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
void setColor(const Color &color);
private:
/* hidden */
};
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
viz::Widget3D::setPose
----------------------
2013-09-02 01:34:17 +08:00
Sets pose of the widget.
.. ocv:function:: void setPose(const Affine3f &pose)
2013-09-02 02:12:31 +08:00
:param pose: The new pose of the widget.
2013-09-08 20:26:58 +08:00
viz::Widget3D::updateWidgetPose
-------------------------------
2013-09-02 01:34:17 +08:00
Updates pose of the widget by pre-multiplying its current pose.
.. ocv:function:: void updateWidgetPose(const Affine3f &pose)
2013-09-02 02:12:31 +08:00
:param pose: The pose that the current pose of the widget will be pre-multiplied by.
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
viz::Widget3D::getPose
----------------------
2013-09-02 01:34:17 +08:00
Returns the current pose of the widget.
.. ocv:function:: Affine3f getWidgetPose() const
2013-09-08 20:26:58 +08:00
viz::Widget3D::setColor
-----------------------
2013-09-02 01:34:17 +08:00
Sets the color of the widget.
.. ocv:function:: void setColor(const Color &color)
2013-09-08 20:26:58 +08:00
:param color: color of type :ocv:class:`Color`
2013-09-02 02:12:31 +08:00
2013-09-08 20:26:58 +08:00
viz::Widget2D
-------------
2013-09-02 01:34:17 +08:00
.. ocv:class:: Widget2D
Base class of all 2D widgets. ::
2013-09-02 02:12:31 +08:00
class CV_EXPORTS Widget2D : public Widget
{
public:
Widget2D() {}
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
void setColor(const Color &color);
};
2013-09-08 20:26:58 +08:00
viz::Widget2D::setColor
-----------------------
2013-09-02 01:34:17 +08:00
Sets the color of the widget.
.. ocv:function:: void setColor(const Color &color)
2013-09-08 20:26:58 +08:00
:param color: color of type :ocv:class:`Color`
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WLine
----------
.. ocv:class:: WLine
2013-09-02 01:34:17 +08:00
This 3D Widget defines a finite line. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WLine : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WLine(const Point3f &pt1, const Point3f &pt2, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
};
2013-09-15 22:26:53 +08:00
viz::WLine::WLine
-----------------
Constructs a WLine.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WLine(const Point3f &pt1, const Point3f &pt2, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param pt1: Start point of the line.
:param pt2: End point of the line.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the line.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WPlane
-----------
.. ocv:class:: WPlane
2013-09-02 01:34:17 +08:00
This 3D Widget defines a finite plane. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WPlane : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WPlane(const Vec4f& coefs, double size = 1.0, const Color &color = Color::white());
WPlane(const Vec4f& coefs, const Point3f& pt, double size = 1.0, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
private:
/* hidden */
};
2013-09-15 22:26:53 +08:00
viz::WPlane::WPlane
-------------------
Constructs a WPlane.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WPlane(const Vec4f& coefs, double size = 1.0, const Color &color = Color::white())
2013-09-02 02:12:31 +08:00
:param coefs: Plane coefficients as in (A,B,C,D) where Ax + By + Cz + D = 0.
:param size: Size of the plane.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the plane.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WPlane(const Vec4f& coefs, const Point3f& pt, double size = 1.0, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param coefs: Plane coefficients as in (A,B,C,D) where Ax + By + Cz + D = 0.
:param pt: Position of the plane.
2013-09-08 20:26:58 +08:00
:param size: Size of the plane.
:param color: :ocv:class:`Color` of the plane.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WSphere
------------
.. ocv:class:: WSphere
2013-09-02 01:34:17 +08:00
This 3D Widget defines a sphere. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WSphere : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WSphere(const cv::Point3f &center, float radius, int sphere_resolution = 10, const Color &color = Color::white())
2013-09-02 02:12:31 +08:00
};
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WSphere::WSphere
---------------------
Constructs a WSphere.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WSphere(const cv::Point3f &center, float radius, int sphere_resolution = 10, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param center: Center of the sphere.
:param radius: Radius of the sphere.
:param sphere_resolution: Resolution of the sphere.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the sphere.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WArrow
2013-09-08 20:26:58 +08:00
----------------
2013-09-15 22:26:53 +08:00
.. ocv:class:: WArrow
2013-09-02 01:34:17 +08:00
This 3D Widget defines an arrow. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WArrow : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WArrow(const Point3f& pt1, const Point3f& pt2, double thickness = 0.03, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
};
2013-09-15 22:26:53 +08:00
viz::WArrow::WArrow
2013-09-08 20:26:58 +08:00
-----------------------------
2013-09-15 22:26:53 +08:00
Constructs an WArrow.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WArrow(const Point3f& pt1, const Point3f& pt2, double thickness = 0.03, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param pt1: Start point of the arrow.
:param pt2: End point of the arrow.
:param thickness: Thickness of the arrow. Thickness of arrow head is also adjusted accordingly.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the arrow.
2013-09-02 02:12:31 +08:00
2013-09-02 01:34:17 +08:00
Arrow head is located at the end point of the arrow.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WCircle
2013-09-08 20:26:58 +08:00
-----------------
2013-09-15 22:26:53 +08:00
.. ocv:class:: WCircle
2013-09-02 01:34:17 +08:00
This 3D Widget defines a circle. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WCircle : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WCircle(const Point3f& pt, double radius, double thickness = 0.01, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
};
2013-09-15 22:26:53 +08:00
viz::WCircle::WCircle
2013-09-08 20:26:58 +08:00
-------------------------------
2013-09-15 22:26:53 +08:00
Constructs a WCircle.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCircle(const Point3f& pt, double radius, double thickness = 0.01, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param pt: Center of the circle.
:param radius: Radius of the circle.
:param thickness: Thickness of the circle.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the circle.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WCylinder
--------------
.. ocv:class:: WCylinder
2013-09-02 01:34:17 +08:00
This 3D Widget defines a cylinder. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WCylinder : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WCylinder(const Point3f& pt_on_axis, const Point3f& axis_direction, double radius, int numsides = 30, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
};
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WCylinder::WCylinder
2013-09-08 20:26:58 +08:00
-----------------------------------
2013-09-15 22:26:53 +08:00
Constructs a WCylinder.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCylinder(const Point3f& pt_on_axis, const Point3f& axis_direction, double radius, int numsides = 30, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param pt_on_axis: A point on the axis of the cylinder.
:param axis_direction: Direction of the axis of the cylinder.
:param radius: Radius of the cylinder.
:param numsides: Resolution of the cylinder.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the cylinder.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WCube
----------
.. ocv:class:: WCube
2013-09-02 01:34:17 +08:00
This 3D Widget defines a cube. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WCube : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WCube(const Point3f& pt_min, const Point3f& pt_max, bool wire_frame = true, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
};
2013-09-15 22:26:53 +08:00
viz::WCube::WCube
2013-09-08 20:26:58 +08:00
---------------------------
2013-09-15 22:26:53 +08:00
Constructs a WCube.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCube(const Point3f& pt_min, const Point3f& pt_max, bool wire_frame = true, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param pt_min: Specifies minimum point of the bounding box.
:param pt_max: Specifies maximum point of the bounding box.
:param wire_frame: If true, cube is represented as wireframe.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the cube.
2013-09-02 02:12:31 +08:00
2013-09-08 20:26:58 +08:00
.. image:: images/cube_widget.png
:alt: Cube Widget
:align: center
2013-09-15 22:26:53 +08:00
viz::WCoordinateSystem
----------------------
.. ocv:class:: WCoordinateSystem
2013-09-02 01:34:17 +08:00
This 3D Widget represents a coordinate system. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WCoordinateSystem : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WCoordinateSystem(double scale = 1.0);
2013-09-02 02:12:31 +08:00
};
2013-09-15 22:26:53 +08:00
viz::WCoordinateSystem::WCoordinateSystem
2013-09-08 20:26:58 +08:00
---------------------------------------------------
2013-09-15 22:26:53 +08:00
Constructs a WCoordinateSystem.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCoordinateSystem(double scale = 1.0)
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param scale: Determines the size of the axes.
2013-09-15 22:26:53 +08:00
viz::WPolyLine
--------------
.. ocv:class:: WPolyLine
2013-09-02 01:34:17 +08:00
This 3D Widget defines a poly line. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WPolyLine : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WPolyLine(InputArray points, const Color &color = Color::white());
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
private:
/* hidden */
};
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WPolyLine::WPolyLine
2013-09-08 20:26:58 +08:00
-----------------------------------
2013-09-15 22:26:53 +08:00
Constructs a WPolyLine.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WPolyLine(InputArray points, const Color &color = Color::white())
2013-09-02 02:12:31 +08:00
:param points: Point set.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the poly line.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WGrid
----------
.. ocv:class:: WGrid
2013-09-02 01:34:17 +08:00
This 3D Widget defines a grid. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WGrid : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
//! Creates grid at the origin
2013-09-15 22:26:53 +08:00
WGrid(const Vec2i &dimensions, const Vec2d &spacing, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
//! Creates grid based on the plane equation
2013-09-15 22:26:53 +08:00
WGrid(const Vec4f &coeffs, const Vec2i &dimensions, const Vec2d &spacing, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
private:
/* hidden */
};
2013-09-15 22:26:53 +08:00
viz::WGrid::WGrid
2013-09-08 20:26:58 +08:00
---------------------------
2013-09-15 22:26:53 +08:00
Constructs a WGrid.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WGrid(const Vec2i &dimensions, const Vec2d &spacing, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param dimensions: Number of columns and rows, respectively.
:param spacing: Size of each column and row, respectively.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the grid.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function: WGrid(const Vec4f &coeffs, const Vec2i &dimensions, const Vec2d &spacing, const Color &color = Color::white())
2013-09-02 02:12:31 +08:00
:param coeffs: Plane coefficients as in (A,B,C,D) where Ax + By + Cz + D = 0.
:param dimensions: Number of columns and rows, respectively.
:param spacing: Size of each column and row, respectively.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the grid.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WText3D
------------
.. ocv:class:: WText3D
2013-09-02 01:34:17 +08:00
This 3D Widget represents 3D text. The text always faces the camera. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WText3D : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WText3D(const String &text, const Point3f &position, double text_scale = 1.0, double face_camera = true, const Color &color = Color::white());
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
void setText(const String &text);
String getText() const;
};
2013-09-15 22:26:53 +08:00
viz::WText3D::WText3D
2013-09-08 20:26:58 +08:00
-------------------------------
2013-09-15 22:26:53 +08:00
Constructs a WText3D.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WText3D(const String &text, const Point3f &position, double text_scale = 1.0, double face_camera = true, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param text: Text content of the widget.
:param position: Position of the text.
:param text_scale: Size of the text.
2013-09-08 20:26:58 +08:00
:param face_camera: If true, text always faces the camera.
:param color: :ocv:class:`Color` of the text.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WText3D::setText
---------------------
2013-09-02 01:34:17 +08:00
Sets the text content of the widget.
.. ocv:function:: void setText(const String &text)
2013-09-02 02:12:31 +08:00
:param text: Text content of the widget.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WText3D::getText
---------------------
2013-09-02 01:34:17 +08:00
Returns the current text content of the widget.
.. ocv:function:: String getText() const
2013-09-15 22:26:53 +08:00
viz::WText
----------
.. ocv:class:: WText
2013-09-02 01:34:17 +08:00
This 2D Widget represents text overlay. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WText : public Widget2D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WText(const String &text, const Point2i &pos, int font_size = 10, const Color &color = Color::white());
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
void setText(const String &text);
String getText() const;
};
2013-09-15 22:26:53 +08:00
viz::WText::WText
-----------------
Constructs a WText.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WText(const String &text, const Point2i &pos, int font_size = 10, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param text: Text content of the widget.
:param pos: Position of the text.
:param font_size: Font size.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the text.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WText::setText
-------------------
2013-09-02 01:34:17 +08:00
Sets the text content of the widget.
.. ocv:function:: void setText(const String &text)
2013-09-02 02:12:31 +08:00
:param text: Text content of the widget.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WText::getText
-------------------
2013-09-02 01:34:17 +08:00
Returns the current text content of the widget.
.. ocv:function:: String getText() const
2013-09-15 22:26:53 +08:00
viz::WImageOverlay
------------------
.. ocv:class:: WImageOverlay
2013-09-02 01:34:17 +08:00
This 2D Widget represents an image overlay. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WImageOverlay : public Widget2D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WImageOverlay(const Mat &image, const Rect &rect);
2013-09-02 02:12:31 +08:00
void setImage(const Mat &image);
};
2013-09-15 22:26:53 +08:00
viz::WImageOverlay::WImageOverlay
---------------------------------
Constructs an WImageOverlay.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WImageOverlay(const Mat &image, const Rect &rect)
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param image: BGR or Gray-Scale image.
:param rect: Image is scaled and positioned based on rect.
2013-09-15 22:26:53 +08:00
viz::WImageOverlay::setImage
----------------------------
2013-09-02 01:34:17 +08:00
Sets the image content of the widget.
.. ocv:function:: void setImage(const Mat &image)
2013-09-02 02:12:31 +08:00
:param image: BGR or Gray-Scale image.
2013-09-15 22:26:53 +08:00
viz::WImage3D
-------------
.. ocv:class:: WImage3D
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
This 3D Widget represents an image in 3D space. ::
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WImage3D : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
//! Creates 3D image at the origin
2013-09-15 22:26:53 +08:00
WImage3D(const Mat &image, const Size &size);
2013-09-02 02:12:31 +08:00
//! Creates 3D image at a given position, pointing in the direction of the normal, and having the up_vector orientation
2013-09-15 22:26:53 +08:00
WImage3D(const Vec3f &position, const Vec3f &normal, const Vec3f &up_vector, const Mat &image, const Size &size);
2013-09-02 02:12:31 +08:00
void setImage(const Mat &image);
};
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WImage3D::WImage3D
-----------------------
Constructs an WImage3D.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WImage3D(const Mat &image, const Size &size)
2013-09-02 02:12:31 +08:00
:param image: BGR or Gray-Scale image.
:param size: Size of the image.
2013-09-15 22:26:53 +08:00
.. ocv:function:: WImage3D(const Vec3f &position, const Vec3f &normal, const Vec3f &up_vector, const Mat &image, const Size &size)
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param position: Position of the image.
:param normal: Normal of the plane that represents the image.
:param up_vector: Determines orientation of the image.
:param image: BGR or Gray-Scale image.
:param size: Size of the image.
2013-09-15 22:26:53 +08:00
viz::WImage3D::setImage
-----------------------
2013-09-02 01:34:17 +08:00
Sets the image content of the widget.
.. ocv:function:: void setImage(const Mat &image)
2013-09-02 02:12:31 +08:00
:param image: BGR or Gray-Scale image.
2013-09-15 22:26:53 +08:00
viz::WCameraPosition
--------------------
.. ocv:class:: WCameraPosition
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
This 3D Widget represents camera position in a scene by its axes or viewing frustum. ::
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WCameraPosition : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
//! Creates camera coordinate frame (axes) at the origin
2013-09-15 22:26:53 +08:00
WCameraPosition(double scale = 1.0);
2013-09-02 02:12:31 +08:00
//! Creates frustum based on the intrinsic marix K at the origin
2013-09-15 22:26:53 +08:00
WCameraPosition(const Matx33f &K, double scale = 1.0, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
//! Creates frustum based on the field of view at the origin
2013-09-15 22:26:53 +08:00
WCameraPosition(const Vec2f &fov, double scale = 1.0, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
//! Creates frustum and display given image at the far plane
2013-09-15 22:26:53 +08:00
WCameraPosition(const Matx33f &K, const Mat &img, double scale = 1.0, const Color &color = Color::white());
2013-09-08 20:26:58 +08:00
//! Creates frustum and display given image at the far plane
2013-09-15 22:26:53 +08:00
WCameraPosition(const Vec2f &fov, const Mat &img, double scale = 1.0, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
};
2013-09-15 22:26:53 +08:00
viz::WCameraPosition::WCameraPosition
-------------------------------------
Constructs a WCameraPosition.
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
- **Display camera coordinate frame.**
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCameraPosition(double scale = 1.0)
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
Creates camera coordinate frame at the origin.
.. image:: images/cpw1.png
:alt: Camera coordinate frame
:align: center
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
- **Display the viewing frustum.**
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCameraPosition(const Matx33f &K, double scale = 1.0, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
:param K: Intrinsic matrix of the camera.
:param scale: Scale of the frustum.
:param color: :ocv:class:`Color` of the frustum.
Creates viewing frustum of the camera based on its intrinsic matrix K.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCameraPosition(const Vec2f &fov, double scale = 1.0, const Color &color = Color::white())
2013-09-08 20:26:58 +08:00
:param fov: Field of view of the camera (horizontal, vertical).
:param scale: Scale of the frustum.
:param color: :ocv:class:`Color` of the frustum.
Creates viewing frustum of the camera based on its field of view fov.
.. image:: images/cpw2.png
:alt: Camera viewing frustum
:align: center
- **Display image on the far plane of the viewing frustum.**
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCameraPosition(const Matx33f &K, const Mat &img, double scale = 1.0, const Color &color = Color::white())
2013-09-08 20:26:58 +08:00
:param K: Intrinsic matrix of the camera.
:param img: BGR or Gray-Scale image that is going to be displayed on the far plane of the frustum.
:param scale: Scale of the frustum and image.
:param color: :ocv:class:`Color` of the frustum.
Creates viewing frustum of the camera based on its intrinsic matrix K, and displays image on the far end plane.
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCameraPosition(const Vec2f &fov, const Mat &img, double scale = 1.0, const Color &color = Color::white())
2013-09-08 20:26:58 +08:00
:param fov: Field of view of the camera (horizontal, vertical).
:param img: BGR or Gray-Scale image that is going to be displayed on the far plane of the frustum.
:param scale: Scale of the frustum and image.
:param color: :ocv:class:`Color` of the frustum.
Creates viewing frustum of the camera based on its intrinsic matrix K, and displays image on the far end plane.
.. image:: images/cpw3.png
:alt: Camera viewing frustum with image
:align: center
2013-09-15 22:26:53 +08:00
viz::WTrajectory
----------------
.. ocv:class:: WTrajectory
2013-09-02 01:34:17 +08:00
This 3D Widget represents a trajectory. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WTrajectory : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
enum {DISPLAY_FRAMES = 1, DISPLAY_PATH = 2};
//! Displays trajectory of the given path either by coordinate frames or polyline
2013-09-15 22:26:53 +08:00
WTrajectory(const std::vector<Affine3f> &path, int display_mode = WTrajectory::DISPLAY_PATH, const Color &color = Color::white(), double scale = 1.0);
2013-09-02 02:12:31 +08:00
//! Displays trajectory of the given path by frustums
2013-09-15 22:26:53 +08:00
WTrajectory(const std::vector<Affine3f> &path, const Matx33f &K, double scale = 1.0, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
//! Displays trajectory of the given path by frustums
2013-09-15 22:26:53 +08:00
WTrajectory(const std::vector<Affine3f> &path, const Vec2f &fov, double scale = 1.0, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
private:
/* hidden */
};
2013-09-15 22:26:53 +08:00
viz::WTrajectory::WTrajectory
-----------------------------
Constructs a WTrajectory.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WTrajectory(const std::vector<Affine3f> &path, int display_mode = WTrajectory::DISPLAY_PATH, const Color &color = Color::white(), double scale = 1.0)
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param path: List of poses on a trajectory.
:param display_mode: Display mode. This can be DISPLAY_PATH, DISPLAY_FRAMES, DISPLAY_PATH & DISPLAY_FRAMES.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the polyline that represents path. Frames are not affected.
2013-09-02 02:12:31 +08:00
:param scale: Scale of the frames. Polyline is not affected.
Displays trajectory of the given path as follows:
* DISPLAY_PATH : Displays a poly line that represents the path.
* DISPLAY_FRAMES : Displays coordinate frames at each pose.
* DISPLAY_PATH & DISPLAY_FRAMES : Displays both poly line and coordinate frames.
2013-09-15 22:26:53 +08:00
.. ocv:function:: WTrajectory(const std::vector<Affine3f> &path, const Matx33f &K, double scale = 1.0, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param path: List of poses on a trajectory.
:param K: Intrinsic matrix of the camera.
:param scale: Scale of the frustums.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the frustums.
2013-09-02 02:12:31 +08:00
Displays frustums at each pose of the trajectory.
2013-09-15 22:26:53 +08:00
.. ocv:function:: WTrajectory(const std::vector<Affine3f> &path, const Vec2f &fov, double scale = 1.0, const Color &color = Color::white())
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
:param path: List of poses on a trajectory.
:param fov: Field of view of the camera (horizontal, vertical).
:param scale: Scale of the frustums.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the frustums.
2013-09-02 02:12:31 +08:00
Displays frustums at each pose of the trajectory.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WSpheresTrajectory
-----------------------
.. ocv:class:: WSpheresTrajectory
2013-09-02 01:34:17 +08:00
This 3D Widget represents a trajectory using spheres and lines, where spheres represent the positions of the camera, and lines
represent the direction from previous position to the current. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WSpheresTrajectory : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WSpheresTrajectory(const std::vector<Affine3f> &path, float line_length = 0.05f,
2013-09-02 02:12:31 +08:00
double init_sphere_radius = 0.021, sphere_radius = 0.007,
Color &line_color = Color::white(), const Color &sphere_color = Color::white());
};
2013-09-15 22:26:53 +08:00
viz::WSpheresTrajectory::WSpheresTrajectory
-------------------------------------------
Constructs a WSpheresTrajectory.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WSpheresTrajectory(const std::vector<Affine3f> &path, float line_length = 0.05f, double init_sphere_radius = 0.021, double sphere_radius = 0.007, const Color &line_color = Color::white(), const Color &sphere_color = Color::white())
2013-09-02 02:12:31 +08:00
:param path: List of poses on a trajectory.
:param line_length: Length of the lines.
:param init_sphere_radius: Radius of the first sphere which represents the initial position of the camera.
:param sphere_radius: Radius of the rest of the spheres.
2013-09-08 20:26:58 +08:00
:param line_color: :ocv:class:`Color` of the lines.
:param sphere_color: :ocv:class:`Color` of the spheres.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WCloud
-----------
.. ocv:class:: WCloud
2013-09-02 01:34:17 +08:00
This 3D Widget defines a point cloud. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WCloud : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
//! Each point in cloud is mapped to a color in colors
2013-09-15 22:26:53 +08:00
WCloud(InputArray cloud, InputArray colors);
2013-09-02 02:12:31 +08:00
//! All points in cloud have the same color
2013-09-15 22:26:53 +08:00
WCloud(InputArray cloud, const Color &color = Color::white());
2013-09-02 02:12:31 +08:00
private:
/* hidden */
};
2013-09-15 22:26:53 +08:00
viz::WCloud::WCloud
-------------------
Constructs a WCloud.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCloud(InputArray cloud, InputArray colors)
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
:param cloud: Set of points which can be of type: ``CV_32FC3``, ``CV_32FC4``, ``CV_64FC3``, ``CV_64FC4``.
2013-09-02 02:12:31 +08:00
:param colors: Set of colors. It has to be of the same size with cloud.
Points in the cloud belong to mask when they are set to (NaN, NaN, NaN).
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCloud(InputArray cloud, const Color &color = Color::white())
2013-09-02 02:12:31 +08:00
2013-09-08 20:26:58 +08:00
:param cloud: Set of points which can be of type: ``CV_32FC3``, ``CV_32FC4``, ``CV_64FC3``, ``CV_64FC4``.
:param color: A single :ocv:class:`Color` for the whole cloud.
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
Points in the cloud belong to mask when they are set to (NaN, NaN, NaN).
2013-09-08 20:26:58 +08:00
.. note:: In case there are four channels in the cloud, fourth channel is ignored.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WCloudCollection
---------------------
.. ocv:class:: WCloudCollection
2013-09-02 01:34:17 +08:00
This 3D Widget defines a collection of clouds. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WCloudCollection : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WCloudCollection();
2013-09-02 02:12:31 +08:00
//! Each point in cloud is mapped to a color in colors
void addCloud(InputArray cloud, InputArray colors, const Affine3f &pose = Affine3f::Identity());
//! All points in cloud have the same color
void addCloud(InputArray cloud, const Color &color = Color::white(), Affine3f &pose = Affine3f::Identity());
private:
/* hidden */
};
2013-09-15 22:26:53 +08:00
viz::WCloudCollection::WCloudCollection
---------------------------------------
Constructs a WCloudCollection.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCloudCollection()
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
viz::WCloudCollection::addCloud
-------------------------------
2013-09-02 01:34:17 +08:00
Adds a cloud to the collection.
.. ocv:function:: void addCloud(InputArray cloud, InputArray colors, const Affine3f &pose = Affine3f::Identity())
2013-09-08 20:26:58 +08:00
:param cloud: Point set which can be of type: ``CV_32FC3``, ``CV_32FC4``, ``CV_64FC3``, ``CV_64FC4``.
2013-09-02 02:12:31 +08:00
:param colors: Set of colors. It has to be of the same size with cloud.
:param pose: Pose of the cloud.
Points in the cloud belong to mask when they are set to (NaN, NaN, NaN).
2013-09-02 01:34:17 +08:00
.. ocv:function:: void addCloud(InputArray cloud, const Color &color = Color::white(), const Affine3f &pose = Affine3f::Identity())
2013-09-08 20:26:58 +08:00
:param cloud: Point set which can be of type: ``CV_32FC3``, ``CV_32FC4``, ``CV_64FC3``, ``CV_64FC4``.
:param colors: A single :ocv:class:`Color` for the whole cloud.
2013-09-02 02:12:31 +08:00
:param pose: Pose of the cloud.
Points in the cloud belong to mask when they are set to (NaN, NaN, NaN).
2013-09-08 20:26:58 +08:00
.. note:: In case there are four channels in the cloud, fourth channel is ignored.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WCloudNormals
------------------
.. ocv:class:: WCloudNormals
2013-09-02 01:34:17 +08:00
This 3D Widget represents normals of a point cloud. ::
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WCloudNormals : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WCloudNormals(InputArray cloud, InputArray normals, int level = 100, float scale = 0.02f, const Color &color = Color::white());
2013-09-02 01:34:17 +08:00
2013-09-02 02:12:31 +08:00
private:
/* hidden */
};
2013-09-15 22:26:53 +08:00
viz::WCloudNormals::WCloudNormals
---------------------------------
Constructs a WCloudNormals.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WCloudNormals(InputArray cloud, InputArray normals, int level = 100, float scale = 0.02f, const Color &color = Color::white())
2013-09-02 02:12:31 +08:00
2013-09-08 20:26:58 +08:00
:param cloud: Point set which can be of type: ``CV_32FC3``, ``CV_32FC4``, ``CV_64FC3``, ``CV_64FC4``.
2013-09-02 02:12:31 +08:00
:param normals: A set of normals that has to be of same type with cloud.
2013-09-08 20:26:58 +08:00
:param level: Display only every ``level`` th normal.
2013-09-02 02:12:31 +08:00
:param scale: Scale of the arrows that represent normals.
2013-09-08 20:26:58 +08:00
:param color: :ocv:class:`Color` of the arrows that represent normals.
.. note:: In case there are four channels in the cloud, fourth channel is ignored.
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
viz::WMesh
----------
.. ocv:class:: WMesh
2013-09-02 01:34:17 +08:00
This 3D Widget defines a mesh. ::
2013-09-02 02:12:31 +08:00
2013-09-15 22:26:53 +08:00
class CV_EXPORTS WMesh : public Widget3D
2013-09-02 02:12:31 +08:00
{
public:
2013-09-15 22:26:53 +08:00
WMesh(const Mesh3d &mesh);
2013-09-02 02:12:31 +08:00
private:
/* hidden */
};
2013-09-15 22:26:53 +08:00
viz::WMesh::WMesh
-----------------
Constructs a WMesh.
2013-09-02 01:34:17 +08:00
2013-09-15 22:26:53 +08:00
.. ocv:function:: WMesh(const Mesh3d &mesh)
2013-09-02 01:34:17 +08:00
2013-09-08 20:26:58 +08:00
:param mesh: :ocv:class:`Mesh3d` object that will be displayed.
2013-09-02 01:34:17 +08:00