+++ /dev/null
-.. _viz:
-
-Launching Viz
-*************
-
-Goal
-====
-
-In this tutorial you will learn how to
-
-.. container:: enumeratevisibleitemswithsquare
-
- * Open a visualization window.
- * Access a window by its name.
- * Start event loop.
- * Start event loop for a given amount of time.
-
-Code
-====
-
-You can download the code from `here <../../../../samples/cpp/tutorial_code/viz/launching_viz.cpp>`_.
-
-.. code-block:: cpp
-
- #include <opencv2/viz.hpp>
- #include <iostream>
-
- using namespace cv;
- using namespace std;
-
- /**
- * @function main
- */
- int main()
- {
- /// Create a window
- viz::Viz3d myWindow("Viz Demo");
-
- /// Start event loop
- myWindow.spin();
-
- /// Event loop is over when pressed q, Q, e, E
- cout << "First event loop is over" << endl;
-
- /// Access window via its name
- viz::Viz3d sameWindow = viz::get("Viz Demo");
-
- /// Start event loop
- sameWindow.spin();
-
- /// Event loop is over when pressed q, Q, e, E
- cout << "Second event loop is over" << endl;
-
- /// Event loop is over when pressed q, Q, e, E
- /// Start event loop once for 1 millisecond
- sameWindow.spinOnce(1, true);
- while(!sameWindow.wasStopped())
- {
- /// Interact with window
-
- /// Event loop for 1 millisecond
- sameWindow.spinOnce(1, true);
- }
-
- /// Once more event loop is stopped
- cout << "Last event loop is over" << endl;
- return 0;
- }
-
-Explanation
-===========
-
-Here is the general structure of the program:
-
-* Create a window.
-
-.. code-block:: cpp
-
- /// Create a window
- viz::Viz3d myWindow("Viz Demo");
-
-* Start event loop. This event loop will run until user terminates it by pressing **e**, **E**, **q**, **Q**.
-
-.. code-block:: cpp
-
- /// Start event loop
- myWindow.spin();
-
-* Access same window via its name. Since windows are implicitly shared, **sameWindow** is exactly the same with **myWindow**. If the name does not exist, a new window is created.
-
-.. code-block:: cpp
-
- /// Access window via its name
- viz::Viz3d sameWindow = viz::get("Viz Demo");
-
-* Start a controlled event loop. Once it starts, **wasStopped** is set to false. Inside the while loop, in each iteration, **spinOnce** is called to prevent event loop from completely stopping. Inside the while loop, user can execute other statements including those which interact with the window.
-
-.. code-block:: cpp
-
- /// Event loop is over when pressed q, Q, e, E
- /// Start event loop once for 1 millisecond
- sameWindow.spinOnce(1, true);
- while(!sameWindow.wasStopped())
- {
- /// Interact with window
-
- /// Event loop for 1 millisecond
- sameWindow.spinOnce(1, true);
- }
-
-Results
-=======
-
-Here is the result of the program.
-
-.. image:: images/window_demo.png
- :alt: Launching Viz
- :align: center
namespace viz
{
/////////////////////////////////////////////////////////////////////////////
+ /// Widget rendering properties
+ enum RenderingProperties
+ {
+ VIZ_POINT_SIZE,
+ VIZ_OPACITY,
+ VIZ_LINE_WIDTH,
+ VIZ_FONT_SIZE,
+ VIZ_COLOR,
+ VIZ_REPRESENTATION,
+ VIZ_IMMEDIATE_RENDERING,
+ VIZ_SHADING
+ };
+
+ enum RenderingRepresentationProperties
+ {
+ REPRESENTATION_POINTS,
+ REPRESENTATION_WIREFRAME,
+ REPRESENTATION_SURFACE
+ };
+
+ enum ShadingRepresentationProperties
+ {
+ SHADING_FLAT,
+ SHADING_GOURAUD,
+ SHADING_PHONG
+ };
+
+ /////////////////////////////////////////////////////////////////////////////
/// The base class for all widgets
class CV_EXPORTS Widget
{
+++ /dev/null
-#pragma once
-
-#include <opencv2/core/cvdef.h>
-#include <opencv2/core.hpp>
-#include <opencv2/viz/types.hpp>
-
-namespace cv
-{
- namespace viz
- {
- enum RenderingProperties
- {
- VIZ_POINT_SIZE,
- VIZ_OPACITY,
- VIZ_LINE_WIDTH,
- VIZ_FONT_SIZE,
- VIZ_COLOR,
- VIZ_REPRESENTATION,
- VIZ_IMMEDIATE_RENDERING,
- VIZ_SHADING
- };
-
- enum RenderingRepresentationProperties
- {
- REPRESENTATION_POINTS,
- REPRESENTATION_WIREFRAME,
- REPRESENTATION_SURFACE
- };
-
- enum ShadingRepresentationProperties
- {
- SHADING_FLAT,
- SHADING_GOURAUD,
- SHADING_PHONG
- };
-
- }
-
-}
#pragma once
-#include "viz_types.h"
#include <opencv2/viz/types.hpp>
namespace cv
#undef __DEPRECATED_DISABLED__
#endif
+namespace cv
+{
+ namespace viz
+ {
+ typedef std::map<std::string, vtkSmartPointer<vtkProp> > WidgetActorMap;
+ }
+}
#include "viz3d_impl.hpp"
#include <opencv2/core.hpp>
#include <opencv2/viz.hpp>
#include "interactor_style.h"
-#include "viz_types.h"
-#include "common.h"
struct cv::viz::Viz3d::VizImpl
{
+++ /dev/null
-#pragma once
-
-#include "precomp.hpp"
-
-namespace cv
-{
- namespace viz
- {
- typedef std::map<std::string, vtkSmartPointer<vtkProp> > WidgetActorMap;
- }
-}
-
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
+#include <opencv2/calib3d.hpp>
#include <fstream>
#include <string>
viz::CoordinateSystemWidget csw;
viz::TextWidget tw("TEST", Point(100, 100), 20);
viz::CloudWidget pcw(cloud, colors);
+// pcw.setRenderingProperty(VIZ_LINE_WIDTH));
viz::CloudWidget pcw2(cloud, viz::Color::magenta());
// viz.showWidget("line", lw);
viz::Mesh3d mesh = cv::viz::Mesh3d::loadMesh("/Users/nerei/horse.ply");
- viz::MeshWidget mw(mesh);
+// viz::MeshWidget mw(mesh);
// viz.showWidget("mesh", mw);
Mat img = imread("opencv.png");
//viz.showWidget("trajectory1", viz::TrajectoryWidget(trajectory, viz::Color(0,255,255), true, 0.5));
viz.showWidget("trajectory2", viz::TrajectoryWidget(trajectory, K, 1.0, viz::Color(255,0,255)));
+// cv::Rodrigues2(Vec3f(), Mat());
// viz.showWidget("trajectory1", viz::TrajectoryWidget(trajectory/*, viz::Color::yellow()*/));
// Store this actor in the widget in order that visualizer can access it
viz::WidgetAccessor::setProp(*this, actor);
+
+ // Set the color of the widget. This has to be called after WidgetAccessor.
+ setColor(color);
}
/**
viz::Viz3d myWindow("Creating Widgets");
/// Create a triangle widget
- TriangleWidget tw(Point3f(0.0,0.0,0.0), Point3f(1.0,1.0,1.0), Point3f(0.0,1.0,0.0));
+ TriangleWidget tw(Point3f(0.0,0.0,0.0), Point3f(1.0,1.0,1.0), Point3f(0.0,1.0,0.0), viz::Color::red());
/// Show widget in the visualizer window
myWindow.showWidget("TRIANGLE", tw);