diff options
Diffstat (limited to 'deduper/libpuzzle/README-PHP')
-rw-r--r-- | deduper/libpuzzle/README-PHP | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/deduper/libpuzzle/README-PHP b/deduper/libpuzzle/README-PHP new file mode 100644 index 0000000..6b14fb9 --- /dev/null +++ b/deduper/libpuzzle/README-PHP @@ -0,0 +1,76 @@ + + .:. LIBPUZZLE - PHP EXTENSION .:. + + http://libpuzzle.pureftpd.org + + + ------------------------ PHP EXTENSION ------------------------ + + +The Puzzle library can also be used through PHP, using a native extension. + +Prerequisites are the PHP headers, libtool, autoconf and automake. + +Here are the basic steps in order to install the extension: + +(on OpenBSD: export AUTOMAKE_VERSION=1.9 ; export AUTOCONF_VERSION=2.61) + +cd php/libpuzzle +phpize +./configure --with-libpuzzle +make clean +make +make install + +If libpuzzle is installed in a non-standard location, use: +./configure --with-libpuzzle=/base/directory/for/libpuzzle + +Then edit your php.ini file and add: + +extension=libpuzzle.so + + + ------------------------ USAGE ------------------------ + + +The PHP extension provides bindings for the following tuning functions: +- puzzle_set_max_width() +- puzzle_set_max_height() +- puzzle_set_lambdas() +- puzzle_set_noise_cutoff() +- puzzle_set_p_ratio() +- puzzle_set_contrast_barrier_for_cropping() +- puzzle_set_max_cropping_ratio() +- puzzle_set_autocrop() + +Have a look at the puzzle_set man page for more info about those. + +Getting the signature of a picture is as simple as: + +$signature = puzzle_fill_cvec_from_file($filename); + +In order to compute the similarity between two pictures using their +signatures, use: + +$d = puzzle_vector_normalized_distance($signature1, $signature2); + +The result is between 0.0 and 1.0, with 0.6 being a good threshold to detect +visually similar pictures. + +The PUZZLE_CVEC_SIMILARITY_THRESHOLD, PUZZLE_CVEC_SIMILARITY_HIGH_THRESHOLD, +PUZZLE_CVEC_SIMILARITY_LOW_THRESHOLD and PUZZLE_CVEC_SIMILARITY_LOWER_THRESHOLD +constants can also be used to get common thresholds : + +if ($d < PUZZLE_CVEC_SIMILARITY_THRESHOLD) { + echo "Pictures look similar\n"; +} + +Before storing a signature into a database, you can compress it in order to +save some storage space: + +$compressed_signature = puzzle_compress_cvec($signature); + +Before use, those compressed signatures must be uncompressed with: + +$signature = puzzle_uncompress_cvec($compressed_signature); + |