Comparaison d'images
Le
Yoann (YoK)

Bonjour,
Je voudrais connaitres vos diverses avis sur le comment comparer deux
images en perl.
Elles seront obligatoirement :
- de la meme taile.
- de type JPEG.
Il se peux qu'il n'y ai qu'un pixel qui change de couleurs entre les
deux images donc la comparaison doit-etre *efficace*.
Merci par avance de vos suggestions.
Un p'tit exemple serais ma fois le bienvenu.
--
Yoann
Je voudrais connaitres vos diverses avis sur le comment comparer deux
images en perl.
Elles seront obligatoirement :
- de la meme taile.
- de type JPEG.
Il se peux qu'il n'y ai qu'un pixel qui change de couleurs entre les
deux images donc la comparaison doit-etre *efficace*.
Merci par avance de vos suggestions.
Un p'tit exemple serais ma fois le bienvenu.
--
Yoann
Avec Image::Magick et la fonction [GetPixels] qui retourne le code de
couleur de la pixel selectionné par coordonnée (x,y)
Tu génère un tableau pour chaque image avec les codes couleurs et tu les
compares !
ou tu utilise la fonction [Compare] de Image::Magick
Example script
#!/usr/bin/perl
#
# Return Compared differences between two images.
#
use Image::Magick;
$i1 = Image::Magick->new;
$i2 = Image::Magick->new;
$i1->Read( filename=> shift );
$i2->Read( filename=> shift );
$i1->Scale(width=>32, height=>32);
$i2->Scale(width=>32, height=>32);
$x = $i1->Compare(image=>$i2);
die "$x" if $x;
printf "Errors is %fn", $i1->Get('error');
printf "Mean Error is %fn", $i1->Get('mean-error');
Voici la source de cet example ou ce trouve aussi une description des
problèmes relié a l'utilisation de cette méthode :
http://www.cit.gu.edu.au/~anthony/info/graphics/image_comparing
--
Ctout !
-----------------------------------------
"Yoann (YoK)"
Qu'appelles-tu « comparer »?
S'il s'agit de déterminer si elles sont identiques ou différentes, une
bête comparaison de chaînes de caractères suffit ($img1 eq $img2). Si
les images sont grosses, tu peux bricoler en les lisant progressivement
(avec `read') ou utiliser une somme MD5.
Tu pourras détecter une différence invisible à l'oeil nu.
--
Jérémy JUST