puzzle_set

Langue: en

Autres versions - même langue

Version: 379067 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)


BSD mandoc

NAME

puzzle_set_max_width puzzle_set_max_height puzzle_set_lambdas puzzle_set_p_ratio puzzle_set_noise_cutoff puzzle_set_contrast_barrier_for_cropping puzzle_set_max_cropping_ratio puzzle_set_autocrop - set tunables for libpuzzle functions.

SYNOPSIS

Fd #include <puzzle.h> Ft int Fn puzzle_set_max_width PuzzleContext *context unsigned int width Ft int Fn puzzle_set_max_height PuzzleContext *context unsigned int height Ft int Fn puzzle_set_lambdas PuzzleContext *context unsigned int lambdas Ft int Fn puzzle_set_p_ratio PuzzleContext *context double p_ratio Ft int Fn puzzle_set_noise_cutoff PuzzleContext *context double noise_cutoff Ft int Fn puzzle_set_contrast_barrier_for_cropping PuzzleContext *context double barrier Ft int Fn puzzle_set_max_cropping_ratio PuzzleContext *context double ratio Ft int Fn puzzle_set_autocrop PuzzleContext *context int enable

DESCRIPTION

While default values have been chosen to be ok for most people, the Fn puzzle_set_* functions are knobs to fit the algorithm to your set of data and to your applications.

LAMBDAS

By default, pictures are divided in 9 x 9 blocks.

9 is the lambdas value, and it can be changed with Fn puzzle_set_lambdas

For large databases, for complex images, for images with a lot of text or for sets of near-similar images, it might be better to raise that value to 11 or even 13

However, raising that value obviously means that vectors will require more storage space.

The lambdas value should remain the same in order to get comparable vectors. So if you pick 11 (for instance), you should always use that value for all pictures you will compute a digest for. Fn puzzle_set_p_ratio

The average intensity of each block is based upon a small centered zone.

The "p ratio" determines the size of that zone. The default is 2.0, and that ratio mimics the behavior that is described in the reference algorithm.

For very specific cases (complex images) or if you get too many false positives, as an alternative to increasing lambdas, you can try to lower that value, for instance to 1.5.

The lowest acceptable value is 1.0.

MAXIMUM SIZES

In order to avoid CPU starvation, pictures won't be processed if their width or height is larger than 3000 pixels.

These limits are rather large, but if you ever need to change them, the Fn puzzle_set_max_width and Fn puzzle_set_max_height are available.

NOISE CUTOFF

The noise cutoff defaults to 2. If you raise that value, more zones with little difference of intensity will be considered as similar.

Unless you have very specialized sets of pictures, you probably don't want to change this.

AUTOCROP

By default, featureless borders of the original image are ignored. The size of each border depends on the sum of absolute values of differences between adjacent pixels, relative to the total sum.

That feature can be disabled with Fn puzzle_set_autocrop 0 Any other value will enable it.

Fn puzzle_set_contrast_barrier_for_cropping changes the tolerance. The default value is 5. Less shaves less, more shaves more.

Fn puzzle_set_max_cropping_ratio This is a safe-guard against unwanted excessive auto-cropping.

The default (0.25) means that no more than 25% of the total width (or height) will ever be shaved.

RETURN VALUE

Functions return 0 on success, and -1 if something went wrong.

SEE ALSO

libpuzzle(3) puzzle-diff8