mirror of
https://github.com/davisking/dlib.git
synced 2024-11-01 10:14:53 +08:00
49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
|
// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt
|
||
|
/*
|
||
|
|
||
|
This is an example illustrating the use of the perspective_window tool
|
||
|
in the dlib C++ Library. It is a simple tool for displaying 3D point
|
||
|
clouds on the screen.
|
||
|
|
||
|
*/
|
||
|
|
||
|
#include <dlib/gui_widgets.h>
|
||
|
#include <dlib/image_transforms.h>
|
||
|
|
||
|
using namespace dlib;
|
||
|
|
||
|
// ----------------------------------------------------------------------------------------
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
// Let's make a point cloud that looks like a 3D spiral.
|
||
|
std::vector<perspective_window::overlay_dot> points;
|
||
|
dlib::rand rnd;
|
||
|
for (double i = 0; i < 20; i+=0.001)
|
||
|
{
|
||
|
// Get a point on a spiral
|
||
|
dlib::vector<double> val(sin(i),cos(i),i/4);
|
||
|
|
||
|
// Now add some random noise to it
|
||
|
dlib::vector<double> temp(rnd.get_random_gaussian(),
|
||
|
rnd.get_random_gaussian(),
|
||
|
rnd.get_random_gaussian());
|
||
|
val += temp/20;
|
||
|
|
||
|
// Pick a color based on how far we are along the spiral
|
||
|
rgb_pixel color = colormap_jet(i,0,20);
|
||
|
|
||
|
// And add the point to the list of points we will display
|
||
|
points.push_back(perspective_window::overlay_dot(val, color));
|
||
|
}
|
||
|
|
||
|
// Now finally display the point cloud.
|
||
|
perspective_window win;
|
||
|
win.set_title("perspective_window 3D point cloud");
|
||
|
win.add_overlay(points);
|
||
|
win.wait_until_closed();
|
||
|
}
|
||
|
|
||
|
// ----------------------------------------------------------------------------
|
||
|
|