如何访问dlib矩阵/向量的元素?

时间:2017-06-07 08:41:43

标签: c++ dlib

std::vector<matrix<float,0,1>> face_descriptors = net(faces);

以上是我正在寻找的。当我使用以下命令时

std:: cout >> face_descriptors[0] >> endl;

它输出整个矩阵。但我想计算两个这样的矢量之间的距离,那么我如何单独访问每个元素? 我正在使用它进行实时人脸识别。

2 个答案:

答案 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]);