X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=images%2Fsig-init.c;h=8a3b5ea2ab924861b81142058042fbe0dc9800c7;hb=26b9fc31aa816c2c5eaa2f5b10d8a988e4d11cf0;hp=1332db15b0d248997c5a18ded1ffa4281f12f75c;hpb=d107850afa414b96c304b2a5a0c915f70f224dcc;p=libucw.git diff --git a/images/sig-init.c b/images/sig-init.c index 1332db15..8a3b5ea2 100644 --- a/images/sig-init.c +++ b/images/sig-init.c @@ -13,15 +13,16 @@ #include "lib/fastbuf.h" #include "lib/conf.h" #include "lib/math.h" -#include "images/math.h" #include "images/images.h" +#include "images/math.h" +#include "images/error.h" #include "images/color.h" #include "images/signature.h" #include int -image_sig_init(struct image_thread *thread, struct image_sig_data *data, struct image *image) +image_sig_init(struct image_context *ctx, struct image_sig_data *data, struct image *image) { ASSERT((image->flags & IMAGE_PIXEL_FORMAT) == COLOR_SPACE_RGB); data->image = image; @@ -33,7 +34,7 @@ image_sig_init(struct image_thread *thread, struct image_sig_data *data, struct data->blocks_count = data->cols * data->rows; if (data->blocks_count >= 0x10000) { - image_thread_err(thread, IMAGE_ERR_INVALID_DIMENSIONS, "Image too large for implemented signature algorithm."); + IMAGE_ERROR(ctx, IMAGE_ERROR_INVALID_DIMENSIONS, "Image too large for implemented signature algorithm."); return 0; } data->blocks = xmalloc(data->blocks_count * sizeof(struct image_sig_block)); @@ -284,6 +285,10 @@ image_sig_finish(struct image_sig_data *data, struct image_signature *sig) sig->reg[0].wa = wa; sig->reg[0].wb = wb; + /* Store image dimensions */ + sig->cols = data->image->cols; + sig->rows = data->image->rows; + /* Dump regions features */ #ifdef LOCAL_DEBUG for (uns i = 0; i < sig->len; i++) @@ -302,10 +307,10 @@ image_sig_cleanup(struct image_sig_data *data) } int -compute_image_signature(struct image_thread *thread, struct image_signature *sig, struct image *image) +compute_image_signature(struct image_context *ctx, struct image_signature *sig, struct image *image) { struct image_sig_data data; - if (!image_sig_init(thread, &data, image)) + if (!image_sig_init(ctx, &data, image)) return 0; image_sig_preprocess(&data); if (data.valid)