Viz
This section describes 3D visualization window as well as classes and methods that are used to interact with it.
3D visualization window (see :ocv:class:`Viz3d`) is used to display widgets (see :ocv:class:`Widget`), and it provides several methods to interact with scene and widgets.
viz::makeTransformToGlobal
Takes coordinate frame data and builds transform to global coordinate frame.
This function returns affine transform that describes transformation between global coordinate frame and a given coordinate frame.
viz::makeCameraPose
Constructs camera pose from position, focal_point and up_vector (see gluLookAt() for more infromation).
This function returns pose of the camera in global coordinate frame.
viz::getWindowByName
Retrieves a window by its name.
This function returns a :ocv:class:`Viz3d` object with the given name.
Note
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.
Note
Window names are automatically prefixed by "Viz - " if it is not done by the user.
/// window and window_2 are the same windows.
viz::Viz3d window = viz::getWindowByName("myWindow");
viz::Viz3d window_2 = viz::getWindowByName("Viz - myWindow");
viz::isNan
Checks float/double value for nan.
Checks vector for nan.
Checks point for nan
viz::Viz3d
The Viz3d class represents a 3D visualizer window. This class is implicitly shared.
class CV_EXPORTS Viz3d
{
public:
typedef cv::Ptr<Viz3d> Ptr;
typedef void (*KeyboardCallback)(const KeyboardEvent&, void*);
typedef void (*MouseCallback)(const MouseEvent&, void*);
Viz3d(const String& window_name = String());
Viz3d(const Viz3d&);
Viz3d& operator=(const Viz3d&);
~Viz3d();
void showWidget(const String &id, const Widget &widget, const Affine3d &pose = Affine3d::Identity());
void removeWidget(const String &id);
Widget getWidget(const String &id) const;
void removeAllWidgets();
void setWidgetPose(const String &id, const Affine3d &pose);
void updateWidgetPose(const String &id, const Affine3d &pose);
Affine3d getWidgetPose(const String &id) const;
void showImage(InputArray image, const Size& window_size = Size(-1, -1));
void setCamera(const Camera &camera);
Camera getCamera() const;
Affine3d getViewerPose();
void setViewerPose(const Affine3d &pose);
void resetCameraViewpoint (const String &id);
void resetCamera();
void convertToWindowCoordinates(const Point3d &pt, Point3d &window_coord);
void converTo3DRay(const Point3d &window_coord, Point3d &origin, Vec3d &direction);
Size getWindowSize() const;
void setWindowSize(const Size &window_size);
String getWindowName() const;
void saveScreenshot (const String &file);
void setWindowPosition (int x, int y);
void setFullScreen (bool mode);
void setBackgroundColor(const Color& color = Color::black());
void spin();
void spinOnce(int time = 1, bool force_redraw = false);
bool wasStopped() const;
void registerKeyboardCallback(KeyboardCallback callback, void* cookie = 0);
void registerMouseCallback(MouseCallback callback, void* cookie = 0);
void setRenderingProperty(const String &id, int property, double value);
double getRenderingProperty(const String &id, int property);
void setRepresentation(int representation);
private:
/* hidden */
};
viz::Viz3d::Viz3d
The constructors.
viz::Viz3d::showWidget
Shows a widget in the window.
viz::Viz3d::removeWidget
Removes a widget from the window.
viz::Viz3d::getWidget
Retrieves a widget from the window. A widget is implicitly shared; that is, if the returned widget is modified, the changes will be immediately visible in the window.
viz::Viz3d::removeAllWidgets
Removes all widgets from the window.
viz::Viz3d::showImage
Removed all widgets and displays image scaled to whole window area.
viz::Viz3d::setWidgetPose
Sets pose of a widget in the window.
viz::Viz3d::updateWidgetPose
Updates pose of a widget in the window by pre-multiplying its current pose.
viz::Viz3d::getWidgetPose
Returns the current pose of a widget in the window.
viz::Viz3d::setCamera
Sets the intrinsic parameters of the viewer using Camera.
viz::Viz3d::getCamera
Returns a camera object that contains intrinsic parameters of the current viewer.
viz::Viz3d::getViewerPose
Returns the current pose of the viewer.
..ocv:function:: Affine3d getViewerPose()
viz::Viz3d::setViewerPose
Sets pose of the viewer.
viz::Viz3d::resetCameraViewpoint
Resets camera viewpoint to a 3D widget in the scene.
viz::Viz3d::resetCamera
Resets camera.
viz::Viz3d::convertToWindowCoordinates
Transforms a point in world coordinate system to window coordinate system.
viz::Viz3d::converTo3DRay
Transforms a point in window coordinate system to a 3D ray in world coordinate system.
viz::Viz3d::getWindowSize
Returns the current size of the window.
viz::Viz3d::setWindowSize
Sets the size of the window.
viz::Viz3d::getWindowName
Returns the name of the window which has been set in the constructor.
viz::Viz3d::saveScreenshot
Saves screenshot of the current scene.
viz::Viz3d::setWindowPosition
Sets the position of the window in the screen.
viz::Viz3d::setFullScreen
Sets or unsets full-screen rendering mode.
viz::Viz3d::setBackgroundColor
Sets background color.
viz::Viz3d::spin
The window renders and starts the event loop.
viz::Viz3d::spinOnce
Starts the event loop for a given time.
viz::Viz3d::wasStopped
Returns whether the event loop has been stopped.
viz::Viz3d::registerKeyboardCallback
Sets keyboard handler.
viz::Viz3d::registerMouseCallback
Sets mouse handler.
viz::Viz3d::setRenderingProperty
Sets rendering property of a widget.
viz::Viz3d::getRenderingProperty
Returns rendering property of a widget.
viz::Viz3d::setRepresentation
Sets geometry representation of the widgets to surface, wireframe or points.
viz::Color
This class a represents BGR color.
class CV_EXPORTS Color : public Scalar
{
public:
Color();
Color(double gray);
Color(double blue, double green, double red);
Color(const Scalar& color);
static Color black();
static Color blue();
static Color green();
static Color cyan();
static Color red();
static Color magenta();
static Color yellow();
static Color white();
static Color gray();
};
viz::Mesh
This class wraps mesh attributes, and it can load a mesh from a ply
file.
class CV_EXPORTS Mesh
{
public:
Mat cloud, colors, normals;
//! 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;
//! Loads mesh from a given ply file
static Mesh load(const String& file);
};
viz::Mesh::load
Loads a mesh from a ply
file.
viz::KeyboardEvent
This class represents a keyboard event.
class CV_EXPORTS KeyboardEvent
{
public:
enum { ALT = 1, CTRL = 2, SHIFT = 4 };
enum Action { KEY_UP = 0, KEY_DOWN = 1 };
KeyboardEvent(Action action, const String& symbol, unsigned char code, int modifiers);
Action action;
String symbol;
unsigned char code;
int modifiers;
};
viz::KeyboardEvent::KeyboardEvent
Constructs a KeyboardEvent.
viz::MouseEvent
This class represents a mouse event.
class CV_EXPORTS MouseEvent
{
public:
enum Type { MouseMove = 1, MouseButtonPress, MouseButtonRelease, MouseScrollDown, MouseScrollUp, MouseDblClick } ;
enum MouseButton { NoButton = 0, LeftButton, MiddleButton, RightButton, VScroll } ;
MouseEvent(const Type& type, const MouseButton& button, const Point& pointer, int modifiers);
Type type;
MouseButton button;
Point pointer;
int modifiers;
};
viz::MouseEvent::MouseEvent
Constructs a MouseEvent.
viz::Camera
This class wraps intrinsic parameters of a camera. It provides several constructors
that can extract the intrinsic parameters from field of view
, intrinsic matrix
and
projection matrix
.
class CV_EXPORTS Camera
{
public:
Camera(double f_x, double f_y, double c_x, double c_y, const Size &window_size);
Camera(const Vec2d &fov, const Size &window_size);
Camera(const Matx33d &K, const Size &window_size);
Camera(const Matx44d &proj, const Size &window_size);
inline const Vec2d & getClip() const;
inline void setClip(const Vec2d &clip);
inline const Size & getWindowSize() const;
void setWindowSize(const Size &window_size);
inline const Vec2d & getFov() const;
inline void setFov(const Vec2d & fov);
inline const Vec2d & getPrincipalPoint() const;
inline const Vec2d & getFocalLength() const;
void computeProjectionMatrix(Matx44d &proj) const;
static Camera KinectCamera(const Size &window_size);
private:
/* hidden */
};
viz::Camera::Camera
Constructs a Camera.
viz::Camera::computeProjectionMatrix
Computes projection matrix using intrinsic parameters of the camera.
viz::Camera::KinectCamera
Creates a Kinect Camera.