Image::Seek(3pm)

Image::Seek3pm

A port of imgseek to perl

Usage

    use Image::Seek qw(loaddb add_image query_id savedb);
    loaddb("haar.db");
    # EITHER
    my $img = GD::Image->newFromJpeg("photo-216.jpg", 1);
    # OR
    my $img = Imager->new();
    $img->open(file => "photo-216.jpg");
    # OR
    my $img = Image::Imlib2->load("photo-216.jpg");
    # Then...
    add_image($img, 216);
    savedb("haar.db");
    my @results = query_id(216); # What looks like this photo?
    remove_id(216); # Just remove id from database.

Overview

ImgSeek (http://www.imgseek.net/) is an implementation of Haar wavelet decomposition techniques to find similar pictures in a library. This module is port of the ImgSeek library to Perl's XS. It can deal with image objects produced by the "Imager", "Image::Imlib2" and "GD" libraries.

Export

None by default, but the following functions are available:

savedb($file)

Dumps the state of the norms and image buckets to the file $file.

loaddb($file)

Loads a database of image norms produced by savedb

cleardb

Clears the internal database. Note that "loaddb" will load into memory a bunch of data that you may already have - it will duplicate rather than replace this data, so results will be skewed if you load a database multiple times without clearing it in between.

add_image($image, $id)

Adds the image object to the database, keyed against the numeric id $id. This will compute the Haar transformation for a 128x128 thumbnail of the image, and then store its norms into a database in memory.

remove_id($id)

remove id from database, and you should "savedb" to save the changed database.

query_id($id[, $results))

This queries the internal database for pictures which are "like" number $id. It returns a list of $results results (by default, 10); a result is an array reference. The first element is the ID of a picture, the second is a score. So for example:

    query_id(2481, 5)

returns, in a shoot I have, the following:

          [ 2481, -38.3800003528595 ],
          [ 2480, -37.5519620793145 ],
          [ 2478, -37.39896965962   ],
          [ 2479, -37.2777427507208 ],
          [ 2584, -10.0803730081134 ],
          [ 2795, -7.89326129961427 ]

Notice that the scores go the opposite way to what you might imagine: lower is better. The results come out sorted, and the first result is the thing you queried for.

addImage($id, $reds, $greens, $blues)

Internally used.

add_image_magick($image, $id)

Internally used.

add_image_gd($image, $id)

Internally used.

add_image_imager($image, $id)

Internally used.

add_image_imlib2($image, $id)

Internally used.

constant

Internally used.

queryImgID

Internally used.

removeID

Internally used.

results

Internally used.

Source repository

<http://github.com/wollmers/Image-Seek>

Maintainer

Helmut Wollmersdorfer <[email protected]>

Releases

8 releases since Debian 6.0 (Squeeze); the text changed 7 times.

  1. 6.0
  2. 7
  3. 8
  4. 9
  5. 10
  6. 11
  7. 12
  8. 13

Author

Simon Cozens, <[email protected]<gt> Lilo Huang, <[email protected]> Helmut Wollmersdorfer, <[email protected]>

All the clever bits were written by Ricardo Niederberger Cabral; Simon Cozens just mangled them to wrap Perl around them.

From libimage-seek-perl 0.06-3+b4 in Debian 13 (Trixie). Parsed by carta from the page's man source.