21 Jan 2006 19:35:38 UTC
- Distribution: Image-Seek
- Module version: 0.01
- Source (raw)
- Browse (raw)
- How to Contribute
- Issues (0)
- Testers (316 / 9 / 0)
- KwaliteeBus factor: 1
- 35.14% Coverage
- License: unknown
- Activity24 month
- Download (38.44KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version
- SEE ALSO
- COPYRIGHT AND LICENSE
Image::Seek - A port of ImgSeek to Perl
use Image::Seek qw(loaddb add_image query_id savedb); loaddb("haar.db"); # EITHER 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?
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
None by default, but the following functions are available:
Dumps the state of the norms and image buckets to the file
Loads a database of image norms produced by savedb
Clears the internal database. Note that
loaddbwill 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.
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.
This queries the internal database for pictures which are "like" number
$id. It returns a list of
$resultsresults (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:
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.
Simon Cozens, <firstname.lastname@example.org<gt>
All the clever bits were written by Ricardo Niederberger Cabral; I just mangled them to wrap Perl around them.
Copyright (C) 2005 by Simon Cozens
This library is free software; as it is a derivative work of imgseek, this library is distributed under the same terms (GPL) as imgseek.