Replies: 1 comment
-
After anet(extract_facechip_lst); I get 29 face vectors ////////////////////////////////////////////////////////////////// vector index from 0 to 28 when manual use unordered_map and sort double Vector128Distance(std::vector v0, std::vector v1)
} use Vector128Distance calculate vector 4, 15 so chinese_whispers maybe a little buggy |
Beta Was this translation helpful? Give feedback.
-
#include "dlib/clustering.h"
#include "dlib/string.h"
using namespace dlib;
using namespace std;
// ----------------------------------------------------------------------------------------
double ThreeVectorDistance(double x0, double y0, double z0, double x1, double y1, double z1)
{
double dx = x0 - x1;
double dy = y0 - y1;
double dz = z0 - z1;
return std::sqrt(dx * dx + dy * dy + dz * dz);
}
int main(int argc, char** argv)
{
int count = 0;
unsigned long clusterNum;
double distance;
double vectorNums[][3] = {{8.3, 8.3, 8.3}, {1, 1, 1}, {2, 2, 2}, {7, -7, 7}, {8.2, 8.2, 8.2}, {12, 12, 12}, {7.6, 7.6, 7.6}, {13, 13, 13}, {13.2, 13.2, 13.2}, {13.3, 13.3, 13.3},
{8.1, 8.1, 8.1}, {1, 1, 1}, {2, 2, 2}, {7, -7, 7}, {8.2, 8.2, 8.2}, {12, 12, 12}, {7.6, 7.6, 7.6}, {13, 13, 13}, {13.2, 13.2, 13.2}, {13.3, 13.3, 13.3}, {7.6, 7.6, 7.6}, {13, 13, 13}, {13.2, 13.2, 13.2}, {13.3, 13.3, 13.3}};
std::vector numlabel;
std::vector<sample_pair> numpair;
}
elapsed time=0.002755
Group 3: (12, 12, 12) (13, 13, 13) (13.2, 13.2, 13.2) (13.3, 13.3, 13.3) (12, 12, 12) (13, 13, 13) (13.2, 13.2, 13.2) (13.3, 13.3, 13.3) (13, 13, 13) (13.2, 13.2, 13.2) (13.3, 13.3, 13.3)
Group 2: (7, -7, 7) (7, -7, 7)
Group 0: (8.3, 8.3, 8.3) (8.2, 8.2, 8.2) (7.6, 7.6, 7.6) (8.1, 8.1, 8.1) (8.2, 8.2, 8.2) (7.6, 7.6, 7.6) (7.6, 7.6, 7.6)
Group 1: (1, 1, 1) (2, 2, 2) (1, 1, 1) (2, 2, 2)
counts:300
/////////////////////////////////////////////////////////////////////////////
#include
#include
#include
#include
#include <unordered_map>
using namespace std;
bool compareOriginDistance(std::vector point0, std::vector point1)
{
double distance0 = std::sqrt(point0[0]*point0[0] + point0[1]*point0[1] + point0[2]*point0[2]);
double distance1 = std::sqrt(point1[0]*point1[0] + point1[1]*point1[1] + point1[2]*point1[2]);
return distance0 < distance1;
}
double ThreeVectorDistance(double x0, double y0, double z0, double x1, double y1, double z1)
{
double dx = x0 - x1;
double dy = y0 - y1;
double dz = z0 - z1;
return std::sqrt(dx * dx + dy * dy + dz * dz);
}
int main() {
bool bFound;
int idx_current;
int count = 0;
int groupIndex = 0;
double distance;
double vectorNums[][3] = {{8.3, 8.3, 8.3}, {1, 1, 1}, {2, 2, 2}, {7, -7, 7}, {8.2, 8.2, 8.2}, {12, 12, 12}, {7.6, 7.6, 7.6}, {13, 13, 13}, {13.2, 13.2, 13.2}, {13.3, 13.3, 13.3},
{8.1, 8.1, 8.1}, {1, 1, 1}, {2, 2, 2}, {7, -7, 7}, {8.2, 8.2, 8.2}, {12, 12, 12}, {7.6, 7.6, 7.6}, {13, 13, 13}, {13.2, 13.2, 13.2}, {13.3, 13.3, 13.3}, {7.6, 7.6, 7.6}, {13, 13, 13}, {13.2, 13.2, 13.2}, {13.3, 13.3, 13.3}};
}
elapsed time=0.000120
Group 3: (12, 12, 12) (12, 12, 12) (13, 13, 13) (13, 13, 13) (13, 13, 13) (13.2, 13.2, 13.2) (13.2, 13.2, 13.2) (13.2, 13.2, 13.2) (13.3, 13.3, 13.3) (13.3, 13.3, 13.3) (13.3, 13.3, 13.3)
Group 2: (7.6, 7.6, 7.6) (7.6, 7.6, 7.6) (7.6, 7.6, 7.6) (8.1, 8.1, 8.1) (8.2, 8.2, 8.2) (8.2, 8.2, 8.2) (8.3, 8.3, 8.3)
Group 0: (1, 1, 1) (1, 1, 1) (2, 2, 2) (2, 2, 2)
Group 1: (7, -7, 7) (7, -7, 7)
counts:43
Beta Was this translation helpful? Give feedback.
All reactions