std::vector<matrix<float,0,1>> face_descriptors = net(faces);
以上是我正在寻找的。当我使用以下命令时
std:: cout >> face_descriptors[0] >> endl;
它输出整个矩阵。但我想计算两个这样的矢量之间的距离,那么我如何单独访问每个元素? 我正在使用它进行实时人脸识别。
答案 0 :(得分:1)
查看此示例文件,该文件说明了如何在dlib http://dlib.net/matrix_ex.cpp.html
中使用矩阵对象您可以通过()运算符
简单地访问dlib矩阵的元素matrix<float, 1, 3> mat;
mat = 0.1, 0.2, 0.3;
cout << mat(0) << endl;
matrix<float, 3, 3> mat2;
mat2 = 0.1, 0.2, 0.3,
1.1, 1.2, 1.3,
2.1, 2.2, 2.3;
cout << mat2(1, 1) << endl;
答案 1 :(得分:1)
据我了解,您需要计算两个人脸描述符之间的距离,它们是dlib矩阵并打包到std向量中。 要访问每个矩阵元素,请遵循 idurdyev 答复。 但是要计算 i 和 j 描述符之间的欧几里得距离,只需使用dlib函数:
double distance= length(face_descriptors[i] - face_descriptors[j]);