KJB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
d_deva_facemark.h
Go to the documentation of this file.
1 /* =========================================================================== *
2  |
3  | Copyright (c) 1994-2011 by Kobus Barnard (author)
4  |
5  | Personal and educational use of this code is granted, provided that this
6  | header is kept intact, and that the authorship is not misrepresented, that
7  | its use is acknowledged in publications, and relevant papers are cited.
8  |
9  | For other use contact the author (kobus AT cs DOT arizona DOT edu).
10  |
11  | Please note that the code in this file has not necessarily been adequately
12  | tested. Naturally, there is no guarantee of performance, support, or fitness
13  | for any particular task. Nonetheless, I am interested in hearing about
14  | problems that you encounter.
15  |
16  | Author: Jinyan Guan
17  * =========================================================================== */
18 
19 /* $Id: d_deva_facemark.h 16056 2013-11-20 00:38:24Z jguan1 $ */
20 
21 #ifndef D_DEVA_FACEMARK_H
22 #define D_DEVA_FACEMARK_H
23 
24 #include <m_cpp/m_vector.h>
25 
26 #include <string>
27 #include <vector>
28 #include <iostream>
29 #include <iterator>
30 #include <algorithm>
31 
32 namespace kjb
33 {
35 {
36 public:
38  (
39  const std::vector<Vector>& parts,
40  double yaw
41  );
42 
43  // const getters
44  const std::vector<Vector>& left_eye() const { return left_eye_; }
45  const std::vector<Vector>& right_eye() const { return right_eye_; }
46  const std::vector<Vector>& nose() const { return nose_; }
47  const std::vector<Vector>& mouth() const { return mouth_; }
48  const std::vector<Vector>& chin() const { return chin_; }
49  double yaw() const { return yaw_; }
50 
51  // non-const getters
52  std::vector<Vector>& left_eye() { return left_eye_; }
53  std::vector<Vector>& right_eye() { return right_eye_; }
54  std::vector<Vector>& nose() { return nose_; }
55  std::vector<Vector>& mouth() { return mouth_; }
56  std::vector<Vector>& chin() { return chin_; }
57  double& yaw() { return yaw_; }
58 
60  const Vector& left_eye_mark() const { return left_eye_mark_; }
61  Vector& left_eye_mark() { return left_eye_mark_; }
62 
64  const Vector& right_eye_mark() const { return right_eye_mark_; }
65  Vector& right_eye_mark() { return right_eye_mark_; }
66 
68  const Vector& nose_mark() const { return nose_mark_; }
69  Vector& nose_mark() { return nose_mark_; }
70 
72  const Vector& left_mouth_mark() const { return left_mouth_mark_; }
73  Vector& left_mouth_mark() { return left_mouth_mark_; }
74 
76  const Vector& right_mouth_mark() const { return right_mouth_mark_; }
77  Vector& right_mouth_mark() { return right_mouth_mark_; }
78 
79 private:
80  void compute_marks();
81 
82 private:
83  std::vector<Vector> left_eye_;
84  std::vector<Vector> right_eye_;
85  std::vector<Vector> mouth_;
86  std::vector<Vector> nose_;
87  std::vector<Vector> chin_;
88  double yaw_;
89  Vector left_eye_mark_;
90  Vector right_eye_mark_;
91  Vector nose_mark_;
92  Vector left_mouth_mark_;
93  Vector right_mouth_mark_;
94 
95 }; //class Deva_facemark
96 
101 std::vector<Deva_facemark> parse_deva_facemark
102 (
103  std::istream& is
104 );
105 
109 Deva_facemark parse_deva_facemark_line
110 (
111  const std::string& line
112 );
113 
119 (
120  const std::vector<Deva_facemark>& faces,
121  std::ostream& os
122 );
123 
128 (
129  const Deva_facemark& face,
130  std::ostream& os
131 );
132 
133 } //namepsace kjb
134 
135 #endif
std::vector< Vector > & chin()
Definition: d_deva_facemark.h:56
Vector & right_eye_mark()
Definition: d_deva_facemark.h:65
const Vector & left_mouth_mark() const
Return the left corner of the mouth.
Definition: d_deva_facemark.h:72
Vector & left_mouth_mark()
Definition: d_deva_facemark.h:73
Vector & left_eye_mark()
Definition: d_deva_facemark.h:61
Definition: d_deva_facemark.h:34
std::vector< Vector > & mouth()
Definition: d_deva_facemark.h:55
const Vector & right_mouth_mark() const
Return the right corner of the mouth.
Definition: d_deva_facemark.h:76
void write_deva_facemark_line(const Deva_facemark &face, std::ostream &os)
Write the output from Deva's face detector.
Definition: d_deva_facemark.cpp:311
const Vector & nose_mark() const
Return the mark of the tip of the nose.
Definition: d_deva_facemark.h:68
const std::vector< Vector > & mouth() const
Definition: d_deva_facemark.h:47
std::vector< Vector > & nose()
Definition: d_deva_facemark.h:54
This class implements vectors, in the linear-algebra sense, with real-valued elements.
Definition: m_vector.h:87
const std::vector< Vector > & right_eye() const
Definition: d_deva_facemark.h:45
const Vector & right_eye_mark() const
Return the mark of the right eye.
Definition: d_deva_facemark.h:64
Deva_facemark parse_deva_facemark_line(const std::string &line)
Parse the output from Deva's face detector.
Definition: d_deva_facemark.cpp:269
Vector & right_mouth_mark()
Definition: d_deva_facemark.h:77
const std::vector< Vector > & nose() const
Definition: d_deva_facemark.h:46
const std::vector< Vector > & left_eye() const
Definition: d_deva_facemark.h:44
Vector & nose_mark()
Definition: d_deva_facemark.h:69
std::vector< Vector > & right_eye()
Definition: d_deva_facemark.h:53
double & yaw()
Definition: d_deva_facemark.h:57
void write_deva_facemark(const std::vector< Deva_facemark > &faces, std::ostream &os)
Write the output from Deva's face detector into a vector of Deva_facemark.
Definition: d_deva_facemark.cpp:297
const Vector & left_eye_mark() const
Return the mark of the left eye.
Definition: d_deva_facemark.h:60
const std::vector< Vector > & chin() const
Definition: d_deva_facemark.h:48
std::vector< Deva_facemark > parse_deva_facemark(std::istream &is)
Parse the output from Deva's face detector into a vector of Deva_facemark.
Definition: d_deva_facemark.cpp:250
Definition for the Vector class, a thin wrapper on the KJB Vector struct and its related functionalit...
Deva_facemark(const std::vector< Vector > &parts, double yaw)
Definition: d_deva_facemark.cpp:177
std::vector< Vector > & left_eye()
Definition: d_deva_facemark.h:52
double yaw() const
Definition: d_deva_facemark.h:49