41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
// Copyright (C) 2013 Davis E. King (davis@dlib.net)
|
|
// License: Boost Software License See LICENSE.txt for the full license.
|
|
#ifndef DLIB_DRAW_SURf_POINTS_H_
|
|
#define DLIB_DRAW_SURf_POINTS_H_
|
|
|
|
#include "surf.h"
|
|
#include "../gui_widgets.h"
|
|
#include "draw_surf_points_abstract.h"
|
|
|
|
namespace dlib
|
|
{
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
inline void draw_surf_points (
|
|
image_window& win,
|
|
const std::vector<surf_point>& sp
|
|
)
|
|
{
|
|
for (unsigned long i = 0; i < sp.size(); ++i)
|
|
{
|
|
const unsigned long radius = static_cast<unsigned long>(sp[i].p.scale*3);
|
|
const point center(sp[i].p.center);
|
|
point direction = center + point(radius,0);
|
|
// SURF descriptors are rotated by sp[i].angle. So we want to include a visual
|
|
// indication of this rotation on our overlay.
|
|
direction = rotate_point(center, direction, sp[i].angle);
|
|
|
|
win.add_overlay(image_display::overlay_circle(center, radius, rgb_pixel(0,255,0)));
|
|
// Draw a line showing the orientation of the SURF descriptor.
|
|
win.add_overlay(center, direction, rgb_pixel(255,0,0));
|
|
}
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
}
|
|
|
|
#endif // DLIB_DRAW_SURf_POINTS_H_
|
|
|
|
|