X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=images%2Fsig-txt.c;h=2e20f0710352592fcda24e62d68bb5c99904f018;hb=c8c688e0b06fdacb20b28b66b9b0608dae8ca0dc;hp=0202e601d2ff294bdb51e48b9884a265abd917f2;hpb=dc4188d47a7e1ac0df29797dcb452b0c2460b634;p=libucw.git diff --git a/images/sig-txt.c b/images/sig-txt.c index 0202e601..2e20f071 100644 --- a/images/sig-txt.c +++ b/images/sig-txt.c @@ -9,7 +9,7 @@ #undef LOCAL_DEBUG -#include "sherlock/sherlock.h" +#include "ucw/lib.h" #include "images/images.h" #include "images/signature.h" #include "images/math.h" @@ -22,6 +22,12 @@ void image_sig_detect_textured(struct image_sig_data *data) { + if (image_sig_textured_threshold <= 0) + { + DBG("Zero textured threshold."); + return; + } + uns cols = data->cols; uns rows = data->rows; uns cell_cols = MIN((cols + 1) / 2, MAX_CELLS_COLS); @@ -38,7 +44,7 @@ image_sig_detect_textured(struct image_sig_data *data) } DBG("Detecting textured image... cols=%u rows=%u cell_cols=%u cell_rows=%u", cols, rows, cell_cols, cell_rows); - + /* Compute cells boundaries */ for (i = 1, j = 0; i < cell_cols; i++) cell_x[i] = fast_div_u32_u8(j += cols, cell_cols); @@ -53,7 +59,7 @@ image_sig_detect_textured(struct image_sig_data *data) for (uns i = 0; i < data->regions_count; i++) for (struct image_sig_block *block = data->regions[i].blocks; block; block = block->next) block->region = i; - + /* Process cells */ double e = 0; for (uns j = 0; j < cell_rows; j++) @@ -73,7 +79,7 @@ image_sig_detect_textured(struct image_sig_data *data) } for (uns k = 0; k < data->regions_count; k++) { - int a = data->blocks_count * cnt[k] - cell_area * data->regions[k].count; + int a = data->blocks_count * cnt[k] - cell_area * data->regions[k].count; e += (double)a * a / ((double)isqr(data->regions[k].count) * cell_area); } } @@ -81,7 +87,7 @@ image_sig_detect_textured(struct image_sig_data *data) DBG("Coefficient=%g", (double)e / (data->regions_count * data->blocks_count)); /* Threshold */ - if (e <= image_sig_textured_threshold * data->regions_count * data->blocks_count) + if (e < image_sig_textured_threshold * data->regions_count * data->blocks_count) { data->flags |= IMAGE_SIG_TEXTURED; DBG("Image is textured.");