X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=images%2Fsig-cmp-gen.h;h=e7fb4e7fe84162961b72d1ce4b368a815ddd3b61;hb=caa88a0e3b694ddb2a518b9b620355c2631735d2;hp=e488734a6f1a0cd0996d52111522ceb1042d1c1a;hpb=80f276ef1ace66fd73181c9078d024ec8e9446e4;p=libucw.git diff --git a/images/sig-cmp-gen.h b/images/sig-cmp-gen.h index e488734a..e7fb4e7f 100644 --- a/images/sig-cmp-gen.h +++ b/images/sig-cmp-gen.h @@ -1,9 +1,13 @@ +#ifdef CONFIG_UCW_CLEAN_ABI +#define image_signatures_dist ucw_image_signatures_dist +#define image_signatures_dist_explain ucw_image_signatures_dist_explain +#endif + #ifdef EXPLAIN # define MSG(x...) do{ line += sprintf(line, x); }while(0) # define LINE do{ line = buf; msg(line, param); }while(0) -static void -explain_signature(struct image_signature *sig, void (*msg)(byte *text, void *param), void *param) +static void explain_signature(struct image_signature *sig, void (*msg)(byte *text, void *param), void *param) { byte buf[1024], *line = buf; MSG("signature: flags=0x%x df=%u dh=%u f=(%u", sig->flags, sig->df, sig->dh, sig->vec.f[0]); @@ -33,11 +37,9 @@ explain_signature(struct image_signature *sig, void (*msg)(byte *text, void *par #define MSGL(x...) do{ MSG(x); LINE; }while(0) #ifndef EXPLAIN -static uns -image_signatures_dist_integrated(struct image_signature *sig1, struct image_signature *sig2) +static uns image_signatures_dist_integrated(struct image_signature *sig1, struct image_signature *sig2) #else -static uns -image_signatures_dist_integrated_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param) +static uns image_signatures_dist_integrated_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param) #endif { uns dist[IMAGE_REG_MAX * IMAGE_REG_MAX], p[IMAGE_REG_MAX], q[IMAGE_REG_MAX]; @@ -70,7 +72,7 @@ image_signatures_dist_integrated_explain(struct image_signature *sig1, struct im dt += image_sig_cmp_features_weights[i] * isqr((int)reg1->f[i] - (int)reg2->f[i]); for (uns i = 0; i < 3; i++) ds += image_sig_cmp_features_weights[IMAGE_VEC_F + i] * isqr((int)reg1->h[i] - (int)reg2->h[i]); - for (uns i = 3; i < 4; i++) + for (uns i = 3; i < 5; i++) dp += image_sig_cmp_features_weights[IMAGE_VEC_F + i] * isqr((int)reg1->h[i] - (int)reg2->h[i]); #if 0 int x1, y1, x2, y2; @@ -107,7 +109,7 @@ image_signatures_dist_integrated_explain(struct image_signature *sig1, struct im d = dt; if (ds < 1000) d = d * 4; - else if (ds < 3000) + else if (ds < 4000) d = d * 6 + 8; else if (ds < 10000) d = d * 8 + 20; @@ -163,7 +165,7 @@ image_signatures_dist_integrated_explain(struct image_signature *sig1, struct im q[i] = reg2->wb; /* Sort entries in distance matrix */ - image_signatures_dist_integrated_sort(n, dist); + image_signatures_dist_integrated_sort(dist, n); /* Compute significance matrix and resulting distance */ uns sum = 0; @@ -226,11 +228,9 @@ image_signatures_dist_integrated_explain(struct image_signature *sig1, struct im } #ifndef EXPLAIN -static uns -image_signatures_dist_fuzzy(struct image_signature *sig1, struct image_signature *sig2) +static uns image_signatures_dist_fuzzy(struct image_signature *sig1, struct image_signature *sig2) #else -static uns -image_signatures_dist_fuzzy_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param) +static uns image_signatures_dist_fuzzy_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param) #endif { #ifdef EXPLAIN @@ -336,11 +336,9 @@ image_signatures_dist_fuzzy_explain(struct image_signature *sig1, struct image_s } #ifndef EXPLAIN -static uns -image_signatures_dist_average(struct image_signature *sig1, struct image_signature *sig2) +static uns image_signatures_dist_average(struct image_signature *sig1, struct image_signature *sig2) #else -static uns -image_signatures_dist_average_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param) +static uns image_signatures_dist_average_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param) #endif { #ifdef EXPLAIN @@ -351,7 +349,7 @@ image_signatures_dist_average_explain(struct image_signature *sig1, struct image uns dist = 0; for (uns i = 0; i < IMAGE_VEC_F; i++) { - uns d = image_sig_cmp_features_weights[0] * isqr((int)sig1->vec.f[i] - (int)sig2->vec.f[i]); + uns d = image_sig_cmp_features_weights[0] * isqr((int)sig1->vec.f[i] - (int)sig2->vec.f[i]); MSGL("feature %u: d=%u (%u %u)", i, d, sig1->vec.f[i], sig2->vec.f[i]); dist += d; } @@ -362,12 +360,10 @@ image_signatures_dist_average_explain(struct image_signature *sig1, struct image #ifndef EXPLAIN #define CALL(x) image_signatures_dist_##x(sig1, sig2) -uns -image_signatures_dist(struct image_signature *sig1, struct image_signature *sig2) +uns image_signatures_dist(struct image_signature *sig1, struct image_signature *sig2) #else #define CALL(x) image_signatures_dist_##x##_explain(sig1, sig2, msg, param) -uns -image_signatures_dist_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param) +uns image_signatures_dist_explain(struct image_signature *sig1, struct image_signature *sig2, void (*msg)(byte *text, void *param), void *param) #endif { if (!sig1->len)