* of the GNU General Public License.
*/
-#include "lib/lib.h"
-#include "lib/getopt.h"
-#include "lib/fastbuf.h"
-#include "lib/mempool.h"
+#include "ucw/lib.h"
+#include "ucw/getopt.h"
+#include "ucw/fastbuf.h"
+#include "ucw/mempool.h"
#include "images/images.h"
#include "images/color.h"
#include "images/duplicates.h"
#define TRY(x) do{ if (!(x)) exit(1); }while(0)
MSG("Initializing image library");
struct image_context ctx;
+ struct image_dup_context idc;
struct image_io io;
image_context_init(&ctx);
+ image_dup_context_init(&ctx, &idc);
struct image *img1, *img2;
image_io_cleanup(&io);
MSG("Image size=%ux%u", img2->cols, img2->rows);
- struct image_dup dup1, dup2;
+ struct image_dup *dup1, *dup2;
struct mempool *pool = mp_new(1 << 18);
MSG("Creating internal structures");
- TRY(image_dup_init(&ctx, &dup1, img1, pool));
- TRY(image_dup_init(&ctx, &dup2, img2, pool));
-
- MSG("Similarity bitmap %02x", image_dup_compare(&dup1, &dup2, transformations | IMAGE_DUP_SCALE | IMAGE_DUP_WANT_ALL));
+ dup1 = mp_start(pool, image_dup_estimate_size(img1->cols, img1->rows, 1, idc.qtree_limit));
+ uns size = image_dup_new(&idc, img1, dup1, 1);
+ TRY(size);
+ mp_end(pool, (void *)dup1 + size);
+ dup2 = mp_start(pool, image_dup_estimate_size(img2->cols, img2->rows, 1, idc.qtree_limit));
+ size = image_dup_new(&idc, img2, dup2, 1);
+ TRY(size);
+ mp_end(pool, (void *)dup2 + size);
+
+ idc.flags = transformations | IMAGE_DUP_SCALE | IMAGE_DUP_WANT_ALL;
+ MSG("Similarity bitmap %02x", image_dup_compare(&idc, dup1, dup2));
mp_delete(pool);
image_destroy(img1);
image_destroy(img2);
+ image_dup_context_cleanup(&idc);
image_context_cleanup(&ctx);
MSG("Done.");
return 0;