3D 可视化器


模块

  Widget
 

class   cv::viz::Camera
  This class wraps intrinsic parameters of a camera. 更多...
 
class   cv::viz::Color
  This class represents color in BGR order. 更多...
 
class   cv::viz::KeyboardEvent
  This class represents a keyboard event. 更多...
 
class   cv::viz::Mesh
  This class wraps mesh attributes, and it can load a mesh from a ply file. : 更多...
 
class   cv::viz::MouseEvent
  This class represents a mouse event. 更多...
 
class   cv::viz::Viz3d
  The Viz3d class represents a 3D visualizer window. This class is implicitly shared. 更多...
 

函数

void  cv::viz::computeNormals (const Mesh &mesh, OutputArray normals)
 
Viz3d   cv::viz::getWindowByName (const String &window_name)
  Retrieves a window by its name. 更多...
 
Viz3d   cv::viz::imshow (const String &window_name, InputArray image, const Size &window_size= Size (-1, -1))
  Displays image in specified window. 更多...
 
bool  cv::viz::isNan (float x)
  Checks float/double value for nan. 更多...
 
bool  cv::viz::isNan (double x)
  Checks float/double value for nan. 更多...
 
template<typename _Tp , int cn>
bool  cv::viz::isNan (const Vec < _Tp, cn > &v)
  Checks float/double value for nan. 更多...
 
template<typename _Tp >
bool  cv::viz::isNan (const Point3_ < _Tp > &p)
  Checks float/double value for nan. 更多...
 
Affine3d   cv::viz::makeCameraPose (const Vec3d &position, const Vec3d &focal_point, const Vec3d &y_dir)
  Constructs camera pose from position, focal_point and up_vector (see gluLookAt() for more information). 更多...
 
Affine3d   cv::viz::makeTransformToGlobal (const Vec3d &axis_x, const Vec3d &axis_y, const Vec3d &axis_z, const Vec3d &origin= Vec3d::all (0))
  Takes coordinate frame data and builds transform to global coordinate frame. 更多...
 
Mat   cv::viz::readCloud (const String &file, OutputArray colors= noArray (), OutputArray normals= noArray ())
 
Mesh   cv::viz::readMesh (const String &file)
  Reads mesh. Only ply format is supported now and no texture load support. 更多...
 
bool  cv::viz::readPose (const String &file, Affine3d &pose, const String &tag="pose")
  Read/write poses and trajectories. 更多...
 
void  cv::viz::readTrajectory ( OutputArray traj, const String &files_format="pose%05d.xml", int start=0, int end=INT_MAX, const String &tag="pose")
 
void  cv::viz::unregisterAllWindows ()
  Unregisters all Viz windows from internal database. After it ' getWindowByName() ' will create new windows instead of getting existing from the database. 更多...
 
void  cv::viz::writeCloud (const String &file, InputArray cloud, InputArray colors= noArray (), InputArray normals= noArray (), bool binary=false)
  Read/write clouds. Supported formats: ply, xyz, obj and stl (readonly) 更多...
 
void  cv::viz::writePose (const String &file, const Affine3d &pose, const String &tag="pose")
 
void  cv::viz::writeTrajectory ( InputArray traj, const String &files_format="pose%05d.xml", int start=0, const String &tag="pose")
 

详细描述

This section describes 3D visualization window as well as classes and methods that are used to interact with it.

3D visualization window (see Viz3d ) is used to display widgets (see Widget ), and it provides several methods to interact with scene and widgets.

函数文档编制

◆  computeNormals()

void cv::viz::computeNormals ( const Mesh mesh ,
OutputArray   normals  
)

#include < opencv2/viz/vizcore.hpp >

Computing normals for mesh

Parameters
mesh Input mesh.
normals Normals at very point in the mesh of type CV_64FC3.

◆  getWindowByName()

Viz3d cv::viz::getWindowByName ( const String window_name )

#include < opencv2/viz/vizcore.hpp >

Retrieves a window by its name.

Parameters
window_name Name of the window that is to be retrieved.

This function returns a Viz3d object with the given name.

注意
If the window with that name already exists, that window is returned. Otherwise, new window is created with the given name, and it is returned.
Window names are automatically prefixed by "Viz - " if it is not done by the user.
viz::Viz3d window = viz::getWindowByName ( "myWindow" );
viz::Viz3d window_2 = viz::getWindowByName ( "Viz - myWindow" );

◆  imshow()

Viz3d cv::viz::imshow ( const String window_name ,
InputArray   image ,
const Size window_size = Size (-1, -1)  
)

#include < opencv2/viz/vizcore.hpp >

Displays image in specified window.

◆  isNan() [1/4]

bool cv::viz::isNan ( float  x )
inline

#include < opencv2/viz/vizcore.hpp >

Checks float/double value for nan.

Parameters
x return true if nan.

◆  isNan() [2/4]

bool cv::viz::isNan ( double  x )
inline

#include < opencv2/viz/vizcore.hpp >

Checks float/double value for nan.

Parameters
x return true if nan.

◆  isNan() [3/4]

template<typename _Tp , int cn>
bool cv::viz::isNan ( const Vec < _Tp, cn > &  v )
inline

#include < opencv2/viz/vizcore.hpp >

Checks float/double value for nan.

Parameters
v return true if any of the elements of the vector is nan .

◆  isNan() [4/4]

template<typename _Tp >
bool cv::viz::isNan ( const Point3_ < _Tp > &  p )
inline

#include < opencv2/viz/vizcore.hpp >

Checks float/double value for nan.

Parameters
p return true if any of the elements of the point is nan .

◆  makeCameraPose()

Affine3d cv::viz::makeCameraPose ( const Vec3d position ,
const Vec3d focal_point ,
const Vec3d y_dir  
)

#include < opencv2/viz/vizcore.hpp >

Constructs camera pose from position, focal_point and up_vector (see gluLookAt() for more information).

Parameters
position Position of the camera in global coordinate frame.
focal_point Focal point of the camera in global coordinate frame.
y_dir Up vector of the camera in global coordinate frame.

This function returns pose of the camera in global coordinate frame.

◆  makeTransformToGlobal()

Affine3d cv::viz::makeTransformToGlobal ( const Vec3d axis_x ,
const Vec3d axis_y ,
const Vec3d axis_z ,
const Vec3d origin = Vec3d::all (0)  
)

#include < opencv2/viz/vizcore.hpp >

Takes coordinate frame data and builds transform to global coordinate frame.

Parameters
axis_x X axis vector in global coordinate frame.
axis_y Y axis vector in global coordinate frame.
axis_z Z axis vector in global coordinate frame.
origin Origin of the coordinate frame in global coordinate frame.
返回
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.

◆  readCloud()

Mat cv::viz::readCloud ( const String file ,
OutputArray   colors = noArray () ,
OutputArray   normals = noArray ()  
)

#include < opencv2/viz/vizcore.hpp >

Parameters
file Filename with extension. Supported formats: PLY, XYZ, OBJ and STL.
colors Used by PLY and STL formats only.
normals Used by PLY, OBJ and STL formats only.
返回
A mat containing the point coordinates with depth CV_32F or CV_64F and number of channels 3 or 4 with only 1 row.

◆  readMesh()

Mesh cv::viz::readMesh ( const String file )

#include < opencv2/viz/vizcore.hpp >

Reads mesh. Only ply format is supported now and no texture load support.

◆  readPose()

bool cv::viz::readPose ( const String file ,
Affine3d pose ,
const String tag = "pose"  
)

#include < opencv2/viz/vizcore.hpp >

Read/write poses and trajectories.

Parameters
file Filename of type supported by cv::FileStorage .
pose Output matrix.
tag Name of the pose in the file.

◆  readTrajectory()

void cv::viz::readTrajectory ( OutputArray   traj ,
const String files_format = "pose%05d.xml" ,
int  start = 0 ,
int  end = INT_MAX ,
const String tag = "pose"  
)

#include < opencv2/viz/vizcore.hpp >

takes vector<Affine3<T>> with T = float/dobule and loads poses from sequence of files

Parameters
traj Output array containing a lists of poses. It can be
  • std::vector<cv::Affine3f>, std::vector<cv::Affine3d>
  • cv::Mat
files_format Format specifier string for constructing filenames. The only placeholder in the string should support int .
start The initial counter for files_format. It must be greater than or equal to 0.
end The final counter for files_format.
tag Name of the matrix in the file.

◆  unregisterAllWindows()

void cv::viz::unregisterAllWindows ( )

#include < opencv2/viz/vizcore.hpp >

Unregisters all Viz windows from internal database. After it ' getWindowByName() ' will create new windows instead of getting existing from the database.

◆  writeCloud()

void cv::viz::writeCloud ( const String file ,
InputArray   cloud ,
InputArray   colors = noArray () ,
InputArray   normals = noArray () ,
bool  binary = false  
)

#include < opencv2/viz/vizcore.hpp >

Read/write clouds. Supported formats: ply, xyz, obj and stl (readonly)

Parameters
file Filename with extension. Supported formats: PLY, XYZ and OBJ.
cloud Supported depths: CV_32F and CV_64F. Supported channels: 3 and 4.
colors Used by PLY format only. Supported depth: CV_8U. Supported channels: 1, 3 and 4.
normals Used by PLY and OBJ format only. Supported depths: CV_32F and CV_64F. Supported channels: 3 and 4.
binary Used only for PLY format.

◆  writePose()

void cv::viz::writePose ( const String file ,
const Affine3d pose ,
const String tag = "pose"  
)

#include < opencv2/viz/vizcore.hpp >

Parameters
file Filename.
pose Input matrix.
tag Name of the pose to be saved into the given file.

◆  writeTrajectory()

void cv::viz::writeTrajectory ( InputArray   traj ,
const String files_format = "pose%05d.xml" ,
int  start = 0 ,
const String tag = "pose"  
)

#include < opencv2/viz/vizcore.hpp >

takes vector<Affine3<T>> with T = float/dobule and writes to a sequence of files with given filename format

Parameters
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
files_format Format specifier string for constructing filenames. The only placeholder in the string should support int .
start The initial counter for files_format.
tag Name of the matrix in the file.