1 #ifndef FACE_DETECTOR_COMMON_H_ 2 #define FACE_DETECTOR_COMMON_H_ 4 #include <pcl/features/integral_image2D.h> 8 namespace face_detection
13 std::vector<boost::shared_ptr<pcl::IntegralImage2D<float, 1> > >
iimages_;
42 stream.write (reinterpret_cast<const char*> (&row1_),
sizeof(row1_));
43 stream.write (reinterpret_cast<const char*> (&col1_),
sizeof(col1_));
44 stream.write (reinterpret_cast<const char*> (&row2_),
sizeof(row2_));
45 stream.write (reinterpret_cast<const char*> (&col2_),
sizeof(col2_));
46 stream.write (reinterpret_cast<const char*> (&wsizex1_),
sizeof(wsizex1_));
47 stream.write (reinterpret_cast<const char*> (&wsizex2_),
sizeof(wsizex2_));
48 stream.write (reinterpret_cast<const char*> (&wsizey1_),
sizeof(wsizey1_));
49 stream.write (reinterpret_cast<const char*> (&wsizey2_),
sizeof(wsizey2_));
50 stream.write (reinterpret_cast<const char*> (&threshold_),
sizeof(threshold_));
51 stream.write (reinterpret_cast<const char*> (&used_ii_),
sizeof(used_ii_));
56 stream.read (reinterpret_cast<char*> (&row1_),
sizeof(row1_));
57 stream.read (reinterpret_cast<char*> (&col1_),
sizeof(col1_));
58 stream.read (reinterpret_cast<char*> (&row2_),
sizeof(row2_));
59 stream.read (reinterpret_cast<char*> (&col2_),
sizeof(col2_));
60 stream.read (reinterpret_cast<char*> (&wsizex1_),
sizeof(wsizex1_));
61 stream.read (reinterpret_cast<char*> (&wsizex2_),
sizeof(wsizex2_));
62 stream.read (reinterpret_cast<char*> (&wsizey1_),
sizeof(wsizey1_));
63 stream.read (reinterpret_cast<char*> (&wsizey2_),
sizeof(wsizey2_));
64 stream.read (reinterpret_cast<char*> (&threshold_),
sizeof(threshold_));
65 stream.read (reinterpret_cast<char*> (&used_ii_),
sizeof(used_ii_));
69 template<
class FeatureType>
89 const int num_of_sub_nodes =
static_cast<int> (sub_nodes.size ());
90 stream.write (reinterpret_cast<const char*> (&num_of_sub_nodes),
sizeof(num_of_sub_nodes));
92 if (sub_nodes.size () > 0)
95 stream.write (reinterpret_cast<const char*> (&threshold),
sizeof(threshold));
98 stream.write (reinterpret_cast<const char*> (&value),
sizeof(value));
99 stream.write (reinterpret_cast<const char*> (&variance),
sizeof(variance));
101 for (
size_t i = 0; i < 3; i++)
102 stream.write (reinterpret_cast<const char*> (&trans_mean_[i]),
sizeof(trans_mean_[i]));
104 for (
size_t i = 0; i < 3; i++)
105 stream.write (reinterpret_cast<const char*> (&rot_mean_[i]),
sizeof(rot_mean_[i]));
107 for (
size_t i = 0; i < 3; i++)
108 for (
size_t j = 0; j < 3; j++)
109 stream.write (reinterpret_cast<const char*> (&covariance_trans_ (i, j)),
sizeof(covariance_trans_ (i, j)));
111 for (
size_t i = 0; i < 3; i++)
112 for (
size_t j = 0; j < 3; j++)
113 stream.write (reinterpret_cast<const char*> (&covariance_rot_ (i, j)),
sizeof(covariance_rot_ (i, j)));
115 for (
int sub_node_index = 0; sub_node_index < num_of_sub_nodes; ++sub_node_index)
117 sub_nodes[sub_node_index].serialize (stream);
123 int num_of_sub_nodes;
124 stream.read (reinterpret_cast<char*> (&num_of_sub_nodes),
sizeof(num_of_sub_nodes));
126 if (num_of_sub_nodes > 0)
129 stream.read (reinterpret_cast<char*> (&threshold),
sizeof(threshold));
132 stream.read (reinterpret_cast<char*> (&value),
sizeof(value));
133 stream.read (reinterpret_cast<char*> (&variance),
sizeof(variance));
135 for (
size_t i = 0; i < 3; i++)
136 stream.read (reinterpret_cast<char*> (&trans_mean_[i]),
sizeof(trans_mean_[i]));
138 for (
size_t i = 0; i < 3; i++)
139 stream.read (reinterpret_cast<char*> (&rot_mean_[i]),
sizeof(rot_mean_[i]));
141 for (
size_t i = 0; i < 3; i++)
142 for (
size_t j = 0; j < 3; j++)
143 stream.read (reinterpret_cast<char*> (&covariance_trans_ (i, j)),
sizeof(covariance_trans_ (i, j)));
145 for (
size_t i = 0; i < 3; i++)
146 for (
size_t j = 0; j < 3; j++)
147 stream.read (reinterpret_cast<char*> (&covariance_rot_ (i, j)),
sizeof(covariance_rot_ (i, j)));
149 sub_nodes.resize (num_of_sub_nodes);
151 if (num_of_sub_nodes > 0)
153 for (
int sub_node_index = 0; sub_node_index < num_of_sub_nodes; ++sub_node_index)
155 sub_nodes[sub_node_index].deserialize (stream);
Eigen::Vector3d trans_mean_
Eigen::Matrix3d covariance_rot_
void serialize(std::ostream &stream) const
std::vector< boost::shared_ptr< pcl::IntegralImage2D< float, 1 > > > iimages_
void deserialize(std::istream &stream)
void deserialize(::std::istream &stream)
Eigen::Vector3d rot_mean_
std::vector< RFTreeNode > sub_nodes
void serialize(::std::ostream &stream) const
Eigen::Matrix3d covariance_trans_