NDArraySimilarity.cpp
Go to the documentation of this file.
1#include "NDArraySimilarity.h"
2
3#include <cmath>
4
6
7#include "../../cosine.h"
8#include "chernoff.h"
9#include "mae.h"
10#include "mse.h"
11
13{
14
15
16 double
18 {
19 switch (type)
20 {
21 case Type::MSE:
22 //ARMARX_INFO << "Calculate MSE";
24 case Type::MAE:
26 case Type::CHERNOFF:
28 case Type::COSINE:
30 default:
32 << "Trying to calculate similarity with unspecified similarity measurement";
33 return -1;
34 }
35 }
36
37 std::string
39 {
40 switch (t)
41 {
42 case MSE:
43 return "MSE";
44 case MAE:
45 return "MAE";
46 case CHERNOFF:
47 return "Chernoff";
48 case COSINE:
49 return "Cosine";
50 default:
51 return "No similarity type information";
52 }
53 }
54
55 double
56 NDArraySimilarity::calculate_similarity_multi(std::vector<data::NDArrayPtr> images,
58 Type type)
59 {
60 double sim = 0;
61 for (auto& image : images)
62 {
63 //ARMARX_INFO << "Before calculation";
64 sim += calculate_similarity(image, p, type);
65 //ARMARX_INFO << "Sim is currently: " << sim;
66 }
67 return sim /
68 (images.size() +
69 1); // to average it over the distances, makes it easier to find good parameters
70 }
71
72} // namespace armarx::aron::similarity
#define ARMARX_WARNING
The logging level for unexpected behaviour, but not a serious problem.
Definition Logging.h:193
std::shared_ptr< NDArray > NDArrayPtr
Definition NDArray.h:46
double calculate_similarity(armarx::aron::data::NDArrayPtr p1, armarx::aron::data::NDArrayPtr p2, Type type)
double calculate_similarity_multi(std::vector< armarx::aron::data::NDArrayPtr > images, armarx::aron::data::NDArrayPtr p, Type type)
calculate_similarity_multi compares the image p with all images from the images vector,...
double compute_similarity(const aron::data::NDArrayPtr p1, const aron::data::NDArrayPtr p2)
Definition chernoff.cpp:14
double compute_similarity(const aron::data::NDArrayPtr p1, const aron::data::NDArrayPtr p2)
Definition cosine.cpp:12
double compute_similarity(const data::NDArrayPtr p1, const data::NDArrayPtr p2)
Definition mae.cpp:7
double compute_similarity(const aron::data::NDArrayPtr p1, const aron::data::NDArrayPtr p2)
Definition mse.cpp:12
A convenience header to include all aron files (full include, not forward declared)