3 #include <pcl/features/integral_image2D.h>
4 #include <pcl/memory.h>
5 #include <pcl/pcl_macros.h>
11 namespace face_detection
16 std::vector<pcl::IntegralImage2D<float, 1>::Ptr>
iimages_;
46 stream.write (reinterpret_cast<const char*> (&row1_),
sizeof(row1_));
47 stream.write (reinterpret_cast<const char*> (&col1_),
sizeof(col1_));
48 stream.write (reinterpret_cast<const char*> (&row2_),
sizeof(row2_));
49 stream.write (reinterpret_cast<const char*> (&col2_),
sizeof(col2_));
50 stream.write (reinterpret_cast<const char*> (&wsizex1_),
sizeof(wsizex1_));
51 stream.write (reinterpret_cast<const char*> (&wsizex2_),
sizeof(wsizex2_));
52 stream.write (reinterpret_cast<const char*> (&wsizey1_),
sizeof(wsizey1_));
53 stream.write (reinterpret_cast<const char*> (&wsizey2_),
sizeof(wsizey2_));
54 stream.write (reinterpret_cast<const char*> (&threshold_),
sizeof(threshold_));
55 stream.write (reinterpret_cast<const char*> (&used_ii_),
sizeof(used_ii_));
60 stream.read (reinterpret_cast<char*> (&row1_),
sizeof(row1_));
61 stream.read (reinterpret_cast<char*> (&col1_),
sizeof(col1_));
62 stream.read (reinterpret_cast<char*> (&row2_),
sizeof(row2_));
63 stream.read (reinterpret_cast<char*> (&col2_),
sizeof(col2_));
64 stream.read (reinterpret_cast<char*> (&wsizex1_),
sizeof(wsizex1_));
65 stream.read (reinterpret_cast<char*> (&wsizex2_),
sizeof(wsizex2_));
66 stream.read (reinterpret_cast<char*> (&wsizey1_),
sizeof(wsizey1_));
67 stream.read (reinterpret_cast<char*> (&wsizey2_),
sizeof(wsizey2_));
68 stream.read (reinterpret_cast<char*> (&threshold_),
sizeof(threshold_));
69 stream.read (reinterpret_cast<char*> (&used_ii_),
sizeof(used_ii_));
73 template<
class FeatureType>
95 const int num_of_sub_nodes =
static_cast<int> (sub_nodes.size ());
96 stream.write (reinterpret_cast<const char*> (&num_of_sub_nodes),
sizeof(num_of_sub_nodes));
98 if (!sub_nodes.empty ())
101 stream.write (reinterpret_cast<const char*> (&threshold),
sizeof(threshold));
104 stream.write (reinterpret_cast<const char*> (&value),
sizeof(value));
105 stream.write (reinterpret_cast<const char*> (&variance),
sizeof(variance));
107 for (std::size_t i = 0; i < 3; i++)
108 stream.write (reinterpret_cast<const char*> (&trans_mean_[i]),
sizeof(trans_mean_[i]));
110 for (std::size_t i = 0; i < 3; i++)
111 stream.write (reinterpret_cast<const char*> (&rot_mean_[i]),
sizeof(rot_mean_[i]));
113 for (std::size_t i = 0; i < 3; i++)
114 for (std::size_t j = 0; j < 3; j++)
115 stream.write (reinterpret_cast<const char*> (&covariance_trans_ (i, j)),
sizeof(covariance_trans_ (i, j)));
117 for (std::size_t i = 0; i < 3; i++)
118 for (std::size_t j = 0; j < 3; j++)
119 stream.write (reinterpret_cast<const char*> (&covariance_rot_ (i, j)),
sizeof(covariance_rot_ (i, j)));
121 for (
int sub_node_index = 0; sub_node_index < num_of_sub_nodes; ++sub_node_index)
123 sub_nodes[sub_node_index].serialize (stream);
129 int num_of_sub_nodes;
130 stream.read (reinterpret_cast<char*> (&num_of_sub_nodes),
sizeof(num_of_sub_nodes));
132 if (num_of_sub_nodes > 0)
135 stream.read (reinterpret_cast<char*> (&threshold),
sizeof(threshold));
138 stream.read (reinterpret_cast<char*> (&value),
sizeof(value));
139 stream.read (reinterpret_cast<char*> (&variance),
sizeof(variance));
141 for (std::size_t i = 0; i < 3; i++)
142 stream.read (reinterpret_cast<char*> (&trans_mean_[i]),
sizeof(trans_mean_[i]));
144 for (std::size_t i = 0; i < 3; i++)
145 stream.read (reinterpret_cast<char*> (&rot_mean_[i]),
sizeof(rot_mean_[i]));
147 for (std::size_t i = 0; i < 3; i++)
148 for (std::size_t j = 0; j < 3; j++)
149 stream.read (reinterpret_cast<char*> (&covariance_trans_ (i, j)),
sizeof(covariance_trans_ (i, j)));
151 for (std::size_t i = 0; i < 3; i++)
152 for (std::size_t j = 0; j < 3; j++)
153 stream.read (reinterpret_cast<char*> (&covariance_rot_ (i, j)),
sizeof(covariance_rot_ (i, j)));
155 sub_nodes.resize (num_of_sub_nodes);
157 if (num_of_sub_nodes > 0)
159 for (
int sub_node_index = 0; sub_node_index < num_of_sub_nodes; ++sub_node_index)
161 sub_nodes[sub_node_index].deserialize (stream);
std::vector< pcl::IntegralImage2D< float, 1 >::Ptr > iimages_
Eigen::Vector3d trans_mean_
Eigen::Matrix3d covariance_rot_
void deserialize(std::istream &stream)
void deserialize(::std::istream &stream)
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
Eigen::Vector3d rot_mean_
std::vector< RFTreeNode > sub_nodes
PCL_MAKE_ALIGNED_OPERATOR_NEW void serialize(::std::ostream &stream) const
void serialize(std::ostream &stream) const
Eigen::Matrix3d covariance_trans_