]> mj.ucw.cz Git - libucw.git/blob - images/sig-cmp.c
align signature size
[libucw.git] / images / sig-cmp.c
1 /*
2  *      Image Library -- Comparitions of image signatures
3  *
4  *      (c) 2006 Pavel Charvat <pchar@ucw.cz>
5  *
6  *      This software may be freely distributed and used according to the terms
7  *      of the GNU Lesser General Public License.
8  */
9
10 #undef LOCAL_DEBUG
11
12 #include "lib/lib.h"
13 #include "lib/math.h"
14 #include "images/math.h"
15 #include "images/images.h"
16 #include "images/signature.h"
17
18 #include <stdio.h>
19
20 #define ASORT_PREFIX(x) image_signatures_dist_integrated_##x
21 #define ASORT_KEY_TYPE uns
22 #define ASORT_ELT(i) items[i]
23 #define ASORT_EXTRA_ARGS , uns *items
24 #include "lib/arraysort.h"
25
26 #define EXPLAIN
27 #include "images/sig-cmp-gen.h"
28 #include "images/sig-cmp-gen.h"
29
30 uns
31 image_signatures_dist(struct image_signature *sig1, struct image_signature *sig2)
32 {
33   switch (image_sig_compare_method)
34     {
35       case 0:
36         return image_signatures_dist_integrated(sig1, sig2);
37       case 1:
38         return image_signatures_dist_fuzzy(sig1, sig2);
39       case 2:
40         return image_signatures_dist_average(sig1, sig2);
41       default:
42         ASSERT(0);
43     }
44 }
45
46 uns
47 image_signatures_dist_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
48 {
49   switch (image_sig_compare_method)
50     {
51       case 0:
52         return image_signatures_dist_integrated_explain(sig1, sig2, msg, param);
53       case 1:
54         return image_signatures_dist_fuzzy_explain(sig1, sig2, msg, param);
55       case 2:
56         return image_signatures_dist_average_explain(sig1, sig2, msg, param);
57       default:
58         ASSERT(0);
59     }
60 }
61