mirror of
https://github.com/opencv/opencv.git
synced 2026-07-29 15:23:05 +04:00
improve the doc for the viz module.
This commit is contained in:
@@ -64,7 +64,7 @@ methods to interact with scene and widgets.
|
||||
@defgroup viz_widget Widget
|
||||
|
||||
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.
|
||||
simple ones such as lines to complex ones such as point clouds and meshes.
|
||||
|
||||
Widgets are **implicitly shared**. Therefore, one can add a widget to the scene, and modify the
|
||||
widget without re-adding the widget.
|
||||
|
||||
@@ -58,12 +58,13 @@ namespace cv
|
||||
//! @addtogroup viz
|
||||
//! @{
|
||||
|
||||
/** @brief This class a represents BGR color.
|
||||
/** @brief This class represents color in BGR order.
|
||||
*/
|
||||
class Color : public Scalar
|
||||
{
|
||||
public:
|
||||
Color();
|
||||
//! The three channels will have the same value equal to gray.
|
||||
Color(double gray);
|
||||
Color(double blue, double green, double red);
|
||||
|
||||
@@ -125,13 +126,16 @@ namespace cv
|
||||
LOAD_OBJ = 2
|
||||
};
|
||||
|
||||
Mat cloud, colors, normals;
|
||||
Mat cloud; //!< point coordinates of type CV_32FC3 or CV_64FC3 with only 1 row
|
||||
Mat colors; //!< point color of type CV_8UC3 or CV_8UC4 with only 1 row
|
||||
Mat normals; //!< point normals of type CV_32FC3, CV_32FC4, CV_64FC3 or CV_64FC4 with only 1 row
|
||||
|
||||
//! Raw integer list of the form: (n,id1,id2,...,idn, n,id1,id2,...,idn, ...)
|
||||
//! where n is the number of points in the poligon, and id is a zero-offset index into an associated cloud.
|
||||
Mat polygons;
|
||||
//! where n is the number of points in the polygon, and id is a zero-offset index into an associated cloud.
|
||||
Mat polygons; //!< CV_32SC1 with only 1 row
|
||||
|
||||
Mat texture, tcoords;
|
||||
Mat texture;
|
||||
Mat tcoords; //!< CV_32FC2 or CV_64FC2 with only 1 row
|
||||
|
||||
/** @brief Loads a mesh from a ply or a obj file.
|
||||
|
||||
@@ -165,20 +169,39 @@ namespace cv
|
||||
point determines the field of view.
|
||||
*/
|
||||
Camera(double fx, double fy, double cx, double cy, const Size &window_size);
|
||||
|
||||
/** @overload
|
||||
@param fov Field of view (horizontal, vertical)
|
||||
@param window_size Size of the window. Principal point is at the center of the window
|
||||
by default.
|
||||
*/
|
||||
explicit Camera(const Vec2d &fov, const Size &window_size);
|
||||
Camera(const Vec2d &fov, const Size &window_size);
|
||||
|
||||
/** @overload
|
||||
@param K Intrinsic matrix of the camera.
|
||||
@param K Intrinsic matrix of the camera with the following form
|
||||
\f[
|
||||
\begin{bmatrix}
|
||||
f_x & 0 & c_x\\
|
||||
0 & f_y & c_y\\
|
||||
0 & 0 & 1\\
|
||||
\end{bmatrix}
|
||||
\f]
|
||||
@param window_size Size of the window. This together with intrinsic matrix determines
|
||||
the field of view.
|
||||
*/
|
||||
explicit Camera(const Matx33d &K, const Size &window_size);
|
||||
Camera(const Matx33d &K, const Size &window_size);
|
||||
|
||||
/** @overload
|
||||
@param proj Projection matrix of the camera.
|
||||
@param proj Projection matrix of the camera with the following form
|
||||
\f[
|
||||
\begin{bmatrix}
|
||||
\frac{2n}{r-l} & 0 & \frac{r+l}{r-l} & 0\\
|
||||
0 & \frac{2n}{t-b} & \frac{t+b}{t-b} & 0\\
|
||||
0 & 0 & -\frac{f+n}{f-n} & -\frac{2fn}{f-n}\\
|
||||
0 & 0 & -1 & 0\\
|
||||
\end{bmatrix}
|
||||
\f]
|
||||
|
||||
@param window_size Size of the window. This together with projection matrix determines
|
||||
the field of view.
|
||||
*/
|
||||
@@ -198,11 +221,23 @@ namespace cv
|
||||
|
||||
/** @brief Computes projection matrix using intrinsic parameters of the camera.
|
||||
|
||||
@param proj Output projection matrix.
|
||||
|
||||
@param proj Output projection matrix with the following form
|
||||
\f[
|
||||
\begin{bmatrix}
|
||||
\frac{2n}{r-l} & 0 & \frac{r+l}{r-l} & 0\\
|
||||
0 & \frac{2n}{t-b} & \frac{t+b}{t-b} & 0\\
|
||||
0 & 0 & -\frac{f+n}{f-n} & -\frac{2fn}{f-n}\\
|
||||
0 & 0 & -1 & 0\\
|
||||
\end{bmatrix}
|
||||
\f]
|
||||
*/
|
||||
void computeProjectionMatrix(Matx44d &proj) const;
|
||||
|
||||
/** @brief Creates a Kinect Camera.
|
||||
/** @brief Creates a Kinect Camera with
|
||||
- fx = fy = 525
|
||||
- cx = 320
|
||||
- cy = 240
|
||||
|
||||
@param window_size Size of the window. This together with intrinsic matrix of a Kinect Camera
|
||||
determines the field of view.
|
||||
@@ -212,10 +247,33 @@ namespace cv
|
||||
private:
|
||||
void init(double fx, double fy, double cx, double cy, const Size &window_size);
|
||||
|
||||
/** The near plane and the far plane.
|
||||
* - clip_[0]: the near plane; default value is 0.01
|
||||
* - clip_[1]: the far plane; default value is 1000.01
|
||||
*/
|
||||
Vec2d clip_;
|
||||
|
||||
/**
|
||||
* Field of view.
|
||||
* - fov_[0]: horizontal(x-axis) field of view in radians
|
||||
* - fov_[1]: vertical(y-axis) field of view in radians
|
||||
*/
|
||||
Vec2d fov_;
|
||||
|
||||
/** Window size.*/
|
||||
Size window_size_;
|
||||
|
||||
/**
|
||||
* Principal point.
|
||||
* - principal_point_[0]: cx
|
||||
* - principal_point_[1]: cy
|
||||
*/
|
||||
Vec2d principal_point_;
|
||||
/**
|
||||
* Focal length.
|
||||
* - focal_[0]: fx
|
||||
* - focal_[1]: fy
|
||||
*/
|
||||
Vec2d focal_;
|
||||
};
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace cv
|
||||
//! @addtogroup viz
|
||||
//! @{
|
||||
|
||||
/** @brief The Viz3d class represents a 3D visualizer window. This class is implicitly shared. :
|
||||
/** @brief The Viz3d class represents a 3D visualizer window. This class is implicitly shared.
|
||||
*/
|
||||
class CV_EXPORTS Viz3d
|
||||
{
|
||||
@@ -134,7 +134,7 @@ namespace cv
|
||||
|
||||
/** @brief Sets the intrinsic parameters of the viewer using Camera.
|
||||
|
||||
@param camera Camera object wrapping intrinsinc parameters.
|
||||
@param camera Camera object wrapping intrinsic parameters.
|
||||
*/
|
||||
void setCamera(const Camera &camera);
|
||||
|
||||
@@ -186,6 +186,7 @@ namespace cv
|
||||
void setWindowSize(const Size &window_size);
|
||||
|
||||
/** @brief Returns the name of the window which has been set in the constructor.
|
||||
* `Viz - ` is prepended to the name if necessary.
|
||||
*/
|
||||
String getWindowName() const;
|
||||
|
||||
@@ -274,22 +275,22 @@ namespace cv
|
||||
@param property Property that will be modified.
|
||||
@param value The new value of the property.
|
||||
|
||||
**Rendering property** can be one of the following:
|
||||
Rendering property can be one of the following:
|
||||
- **POINT_SIZE**
|
||||
- **OPACITY**
|
||||
- **LINE_WIDTH**
|
||||
- **FONT_SIZE**
|
||||
-
|
||||
**REPRESENTATION**: Expected values are
|
||||
|
||||
REPRESENTATION: Expected values are
|
||||
- **REPRESENTATION_POINTS**
|
||||
- **REPRESENTATION_WIREFRAME**
|
||||
- **REPRESENTATION_SURFACE**
|
||||
-
|
||||
**IMMEDIATE_RENDERING**:
|
||||
|
||||
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: Expected values are
|
||||
- **SHADING_FLAT**
|
||||
- **SHADING_GOURAUD**
|
||||
- **SHADING_PHONG**
|
||||
@@ -300,22 +301,22 @@ namespace cv
|
||||
@param id Id of the widget.
|
||||
@param property Property.
|
||||
|
||||
**Rendering property** can be one of the following:
|
||||
Rendering property can be one of the following:
|
||||
- **POINT_SIZE**
|
||||
- **OPACITY**
|
||||
- **LINE_WIDTH**
|
||||
- **FONT_SIZE**
|
||||
-
|
||||
**REPRESENTATION**: Expected values are
|
||||
|
||||
REPRESENTATION: Expected values are
|
||||
- **REPRESENTATION_POINTS**
|
||||
- **REPRESENTATION_WIREFRAME**
|
||||
- **REPRESENTATION_SURFACE**
|
||||
-
|
||||
**IMMEDIATE_RENDERING**:
|
||||
|
||||
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: Expected values are
|
||||
- **SHADING_FLAT**
|
||||
- **SHADING_GOURAUD**
|
||||
- **SHADING_PHONG**
|
||||
|
||||
@@ -60,21 +60,24 @@ namespace cv
|
||||
|
||||
/** @brief Takes coordinate frame data and builds transform to global coordinate frame.
|
||||
|
||||
@param axis_x X axis vector in global coordinate frame. @param axis_y Y axis vector in global
|
||||
coordinate frame. @param axis_z Z axis vector in global coordinate frame. @param origin Origin of
|
||||
the coordinate frame in global coordinate frame.
|
||||
@param axis_x X axis vector in global coordinate frame.
|
||||
@param axis_y Y axis vector in global coordinate frame.
|
||||
@param axis_z Z axis vector in global coordinate frame.
|
||||
@param origin Origin of the coordinate frame in global coordinate frame.
|
||||
|
||||
This function returns affine transform that describes transformation between global coordinate frame
|
||||
@return An affine transform that describes transformation between global coordinate frame
|
||||
and a given coordinate frame.
|
||||
The returned transforms can transform a point in the given coordinate frame to the global
|
||||
coordinate frame.
|
||||
*/
|
||||
CV_EXPORTS Affine3d makeTransformToGlobal(const Vec3d& axis_x, const Vec3d& axis_y, const Vec3d& axis_z, const Vec3d& origin = Vec3d::all(0));
|
||||
|
||||
/** @brief Constructs camera pose from position, focal_point and up_vector (see gluLookAt() for more
|
||||
infromation).
|
||||
|
||||
@param position Position of the camera in global coordinate frame. @param focal_point Focal point
|
||||
of the camera in global coordinate frame. @param y_dir Up vector of the camera in global
|
||||
coordinate frame.
|
||||
@param position Position of the camera in global coordinate frame.
|
||||
@param focal_point Focal point of the camera in global coordinate frame.
|
||||
@param y_dir Up vector of the camera in global coordinate frame.
|
||||
|
||||
This function returns pose of the camera in global coordinate frame.
|
||||
*/
|
||||
@@ -98,7 +101,7 @@ namespace cv
|
||||
*/
|
||||
CV_EXPORTS Viz3d getWindowByName(const String &window_name);
|
||||
|
||||
//! Unregisters all Viz windows from internal database. After it 'getWindowByName()' will create new windows instead getting existing from the database.
|
||||
//! Unregisters all Viz windows from internal database. After it 'getWindowByName()' will create new windows instead of getting existing from the database.
|
||||
CV_EXPORTS void unregisterAllWindows();
|
||||
|
||||
//! Displays image in specified window
|
||||
@@ -142,7 +145,23 @@ namespace cv
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Read/write clouds. Supported formats: ply, xyz, obj and stl (readonly)
|
||||
|
||||
/**
|
||||
* @param file Filename with extension. Supported formats: PLY, XYZ and OBJ.
|
||||
* @param cloud Supported depths: CV_32F and CV_64F. Supported channels: 3 and 4.
|
||||
* @param colors Used by PLY format only. Supported depth: CV_8U. Supported channels: 1, 3 and 4.
|
||||
* @param normals Used by PLY and OBJ format only. Supported depths: CV_32F and CV_64F.
|
||||
* Supported channels: 3 and 4.
|
||||
* @param binary Used only for PLY format.
|
||||
*/
|
||||
CV_EXPORTS void writeCloud(const String& file, InputArray cloud, InputArray colors = noArray(), InputArray normals = noArray(), bool binary = false);
|
||||
|
||||
/**
|
||||
* @param file Filename with extension. Supported formats: PLY, XYZ, OBJ and STL.
|
||||
* @param colors Used by PLY and STL formats only.
|
||||
* @param normals Used by PLY, OBJ and STL formats only.
|
||||
* @return A mat containing the point coordinates with depth CV_32F or CV_64F and number of
|
||||
* channels 3 or 4 with only 1 row.
|
||||
*/
|
||||
CV_EXPORTS Mat readCloud (const String& file, OutputArray colors = noArray(), OutputArray normals = noArray());
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -153,19 +172,50 @@ namespace cv
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Read/write poses and trajectories
|
||||
|
||||
/**
|
||||
* @param file Filename of type supported by cv::FileStorage.
|
||||
* @param pose Output matrix.
|
||||
* @param tag Name of the pose in the file.
|
||||
*/
|
||||
CV_EXPORTS bool readPose(const String& file, Affine3d& pose, const String& tag = "pose");
|
||||
/**
|
||||
* @param file Filename.
|
||||
* @param pose Input matrix.
|
||||
* @param tag Name of the pose to be saved into the given file.
|
||||
*/
|
||||
CV_EXPORTS void writePose(const String& file, const Affine3d& pose, const String& tag = "pose");
|
||||
|
||||
//! takes vector<Affine3<T>> with T = float/dobule and writes to a sequence of files with given filename format
|
||||
/** takes vector<Affine3<T>> with T = float/dobule and writes to a sequence of files with given filename format
|
||||
* @param traj Trajectory containing a list of poses. It can be
|
||||
* - std::vector<cv::Mat>, each cv::Mat is of type CV_32F16 or CV_64FC16
|
||||
* - std::vector<cv::Affine3f>, std::vector<cv::Affine3d>
|
||||
* - cv::Mat of type CV_32FC16 OR CV_64F16
|
||||
* @param files_format Format specifier string for constructing filenames.
|
||||
* The only placeholder in the string should support `int`.
|
||||
* @param start The initial counter for files_format.
|
||||
* @param tag Name of the matrix in the file.
|
||||
*/
|
||||
CV_EXPORTS void writeTrajectory(InputArray traj, const String& files_format = "pose%05d.xml", int start = 0, const String& tag = "pose");
|
||||
|
||||
//! takes vector<Affine3<T>> with T = float/dobule and loads poses from sequence of files
|
||||
/** takes vector<Affine3<T>> with T = float/dobule and loads poses from sequence of files
|
||||
*
|
||||
* @param traj Output array containing a lists of poses. It can be
|
||||
* - std::vector<cv::Affine3f>, std::vector<cv::Affine3d>
|
||||
* - cv::Mat
|
||||
* @param files_format Format specifier string for constructing filenames.
|
||||
* The only placeholder in the string should support `int`.
|
||||
* @param start The initial counter for files_format. It must be greater than or equal to 0.
|
||||
* @param end The final counter for files_format.
|
||||
* @param tag Name of the matrix in the file.
|
||||
*/
|
||||
CV_EXPORTS void readTrajectory(OutputArray traj, const String& files_format = "pose%05d.xml", int start = 0, int end = INT_MAX, const String& tag = "pose");
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// Computing normals for mesh
|
||||
|
||||
/** Computing normals for mesh
|
||||
* @param mesh Input mesh.
|
||||
* @param normals Normals at very point in the mesh of type CV_64FC3.
|
||||
*/
|
||||
CV_EXPORTS void computeNormals(const Mesh& mesh, OutputArray normals);
|
||||
|
||||
//! @}
|
||||
|
||||
@@ -87,7 +87,7 @@ namespace cv
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/** @brief Base class of all widgets. Widget is implicitly shared. :
|
||||
/** @brief Base class of all widgets. Widget is implicitly shared.
|
||||
*/
|
||||
class CV_EXPORTS Widget
|
||||
{
|
||||
@@ -108,22 +108,22 @@ namespace cv
|
||||
@param property Property that will be modified.
|
||||
@param value The new value of the property.
|
||||
|
||||
**Rendering property** can be one of the following:
|
||||
Rendering property can be one of the following:
|
||||
- **POINT_SIZE**
|
||||
- **OPACITY**
|
||||
- **LINE_WIDTH**
|
||||
- **FONT_SIZE**
|
||||
-
|
||||
**REPRESENTATION**: Expected values are
|
||||
|
||||
REPRESENTATION: Expected values are
|
||||
- **REPRESENTATION_POINTS**
|
||||
- **REPRESENTATION_WIREFRAME**
|
||||
- **REPRESENTATION_SURFACE**
|
||||
-
|
||||
**IMMEDIATE_RENDERING**:
|
||||
|
||||
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: Expected values are
|
||||
- **SHADING_FLAT**
|
||||
- **SHADING_GOURAUD**
|
||||
- **SHADING_PHONG**
|
||||
@@ -133,24 +133,24 @@ namespace cv
|
||||
|
||||
@param property Property.
|
||||
|
||||
**Rendering property** can be one of the following:
|
||||
Rendering property can be one of the following:
|
||||
- **POINT_SIZE**
|
||||
- **OPACITY**
|
||||
- **LINE_WIDTH**
|
||||
- **FONT_SIZE**
|
||||
- **AMBIENT**
|
||||
-
|
||||
**REPRESENTATION**: Expected values are
|
||||
: - **REPRESENTATION_POINTS**
|
||||
|
||||
REPRESENTATION: Expected values are
|
||||
- **REPRESENTATION_POINTS**
|
||||
- **REPRESENTATION_WIREFRAME**
|
||||
- **REPRESENTATION_SURFACE**
|
||||
-
|
||||
|
||||
**IMMEDIATE_RENDERING**:
|
||||
: - Turn on immediate rendering by setting the value to 1.
|
||||
- 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: Expected values are
|
||||
- **SHADING_FLAT**
|
||||
- **SHADING_GOURAUD**
|
||||
- **SHADING_PHONG**
|
||||
*/
|
||||
@@ -306,7 +306,7 @@ namespace cv
|
||||
class CV_EXPORTS WCircle : public Widget3D
|
||||
{
|
||||
public:
|
||||
/** @brief Constructs default planar circle centred at origin with plane normal along z-axis
|
||||
/** @brief Constructs default planar circle centered at origin with plane normal along z-axis
|
||||
|
||||
@param radius Radius of the circle.
|
||||
@param thickness Thickness of the circle.
|
||||
|
||||
Reference in New Issue
Block a user