compare -metric mae image.png reference.png difference.png
####
Errors is 3156.326700
Mean Error is 0.026116
####
#!/usr/bin/perl
use warnings;
use strict;
use Image::Magick;
my $i1 = Image::Magick->new;
my $i2 = Image::Magick->new;
my $w = $i1->Read('image.png'); # read in images
warn("$w") if $w;
exit if $w =~ /^Exception/;
$w = $i2->Read( 'reference.png');
warn("$w") if $w;
exit if $w =~ /^Exception/;
$i1->Scale(width=>100, height=>100); # scale without preserving aspect ratio
$i2->Scale(width=>100, height=>100);
$w = $i1->Compare(image=>$i2); # compare
die "$w" if $w;
printf "Errors is %f\n", $i1->Get('error');
printf "Mean Error is %f\n", $i1->Get('mean-error');
####
#!/usr/bin/perl
use warnings;
use strict;
use Image::Magick;
my $i1 = Image::Magick->new;
my $i2 = Image::Magick->new;
#make some test files
$i1->Set(size=>'250x100');
$i1->ReadImage('xc:white');
$i1->Draw(primitive=> 'rectangle',
fill=>'red',
points=>'60,30 110,70');
$i1->Write("i1.png"); #for comparison
$i2->Set(size=>'250x100');
$i2->ReadImage('xc:white');
$i2->Draw(primitive=> 'line',
fill=>'green',
points=>'10,10 200,100');
$i2->Write("i2.png"); #for comparison
$i1->Composite(
gravity => "Center",
compose=>'Difference',
image => $i2,
);
$i1->Write("$0-diff-compose.png");