60 lines
2.4 KiB
C++
60 lines
2.4 KiB
C++
// Copyright (C) 2014 Davis E. King (davis@dlib.net)
|
|
// License: Boost Software License See LICENSE.txt for the full license.
|
|
#undef DLIB_RENDER_FACE_DeTECTIONS_ABSTRACT_H_
|
|
#ifdef DLIB_RENDER_FACE_DeTECTIONS_ABSTRACT_H_
|
|
|
|
#include "full_object_detection_abstract.h"
|
|
#include "../gui_widgets.h"
|
|
|
|
namespace dlib
|
|
{
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
inline std::vector<image_window::overlay_line> render_face_detections (
|
|
const std::vector<full_object_detection>& dets,
|
|
const rgb_pixel color = rgb_pixel(0,255,0)
|
|
);
|
|
/*!
|
|
requires
|
|
- for all valid i:
|
|
- dets[i].num_parts() == 68 || dets[i].num_parts() == 5
|
|
ensures
|
|
- Interprets the given objects as face detections with parts annotated using
|
|
either the iBUG face landmark scheme or a 5 point face annotation. We then
|
|
return a set of overlay lines that will draw the objects onto the screen in a
|
|
way that properly draws the outline of the face features defined by the part
|
|
locations.
|
|
- returns a vector with dets.size() elements, each containing the lines
|
|
necessary to render a face detection from dets.
|
|
- The 5 point face annotation scheme is assumed to be:
|
|
- det part 0 == left eye corner, outside part of eye.
|
|
- det part 1 == left eye corner, inside part of eye.
|
|
- det part 2 == right eye corner, outside part of eye.
|
|
- det part 3 == right eye corner, inside part of eye.
|
|
- det part 4 == immediately under the nose, right at the top of the philtrum.
|
|
!*/
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
inline std::vector<image_window::overlay_line> render_face_detections (
|
|
const full_object_detection& det,
|
|
const rgb_pixel color = rgb_pixel(0,255,0)
|
|
);
|
|
/*!
|
|
requires
|
|
- det.num_parts() == 68 || det.num_parts() == 5
|
|
ensures
|
|
- This function is identical to the above render_face_detections() routine
|
|
except that it takes just a single full_object_detection instead of a
|
|
std::vector of them.
|
|
!*/
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
}
|
|
|
|
#endif // DLIB_RENDER_FACE_DeTECTIONS_ABSTRACT_H_
|
|
|
|
|