mirror of
https://github.com/opencv/opencv.git
synced 2024-11-28 05:06:29 +08:00
delete common.h, viz_types.hpp, rendering properties are public, setcolor in creating_widgets tutorial
This commit is contained in:
parent
9a91a12fb2
commit
fdbf20c172
@ -1,118 +0,0 @@
|
||||
.. _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
|
@ -6,6 +6,34 @@ namespace cv
|
||||
{
|
||||
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
|
||||
|
@ -1,39 +0,0 @@
|
||||
#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
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include "viz_types.h"
|
||||
#include <opencv2/viz/types.hpp>
|
||||
|
||||
namespace cv
|
||||
|
@ -76,6 +76,13 @@
|
||||
#undef __DEPRECATED_DISABLED__
|
||||
#endif
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace viz
|
||||
{
|
||||
typedef std::map<std::string, vtkSmartPointer<vtkProp> > WidgetActorMap;
|
||||
}
|
||||
}
|
||||
|
||||
#include "viz3d_impl.hpp"
|
||||
#include <opencv2/core.hpp>
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
#include <opencv2/viz.hpp>
|
||||
#include "interactor_style.h"
|
||||
#include "viz_types.h"
|
||||
#include "common.h"
|
||||
|
||||
struct cv::viz::Viz3d::VizImpl
|
||||
{
|
||||
|
@ -1,12 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "precomp.hpp"
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace viz
|
||||
{
|
||||
typedef std::map<std::string, vtkSmartPointer<vtkProp> > WidgetActorMap;
|
||||
}
|
||||
}
|
||||
|
@ -44,6 +44,7 @@
|
||||
#include <opencv2/core.hpp>
|
||||
#include <opencv2/imgproc.hpp>
|
||||
#include <opencv2/highgui.hpp>
|
||||
#include <opencv2/calib3d.hpp>
|
||||
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
@ -100,6 +101,7 @@ TEST(Viz_viz3d, accuracy)
|
||||
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);
|
||||
@ -135,7 +137,7 @@ TEST(Viz_viz3d, accuracy)
|
||||
|
||||
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");
|
||||
@ -173,6 +175,7 @@ TEST(Viz_viz3d, accuracy)
|
||||
//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()*/));
|
||||
|
@ -81,6 +81,9 @@ TriangleWidget::TriangleWidget(const Point3f &pt1, const Point3f &pt2, const Poi
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -94,7 +97,7 @@ int main()
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user