]> mj.ucw.cz Git - libucw.git/blob - images/sig-cmp.c
simple explain support for fuzzy regions matching
[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       default:
40         ASSERT(0);
41     }
42 }
43
44 uns
45 image_signatures_dist_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param)
46 {
47   switch (image_sig_compare_method)
48     {
49       case 0:
50         return image_signatures_dist_integrated_explain(sig1, sig2, msg, param);
51       case 1:
52         return image_signatures_dist_fuzzy_explain(sig1, sig2, msg, param);
53       default:
54         ASSERT(0);
55     }
56 }
57