2014-10-19 2 views
1

Я пытаюсь использовать Image::Compare в perl для сравнения двух изображений на основе цветов, используемых в изображениях. Вот код, я использую:Error Image :: Compare (jpg files)

#!/usr/bin/perl 
use strict; 
use warnings; 
use Image::Compare; 
my ($cmp) = Image::Compare->new(); 
$cmp->set_image1(
    img => "$ARGV[0]", 
    type => 'jpg', 
); 
$cmp->set_image2(
    img => "$ARGV[1]", 
    type => 'jpg', 
); 
$cmp->set_method(
    method => &Image::Compare::THRESHOLD, 
    args => 70, 
); 

if ($cmp->compare()) { 
    print "same \n"; 
} else { 
    print "not same\n"; 
} 

При запуске, он дал ошибку:

Я попытался установить Imager::File::JPEG, но и дал мне ошибки:

$ cpan install Imager::File::JPEG Reading '/home/b0y/.cpan/Metadata'
Database was generated on Sat, 18 Oct 2014 07:05:12 GMT Running install for module 'Imager::File::JPEG' Running make for T/TO/TONYC/Imager-File-JPEG-0.88.tar.gz Checksum for /home/b0y/.cpan/sources/authors/id/T/TO/TONYC/Imager-File-JPEG-0.88.tar.gz ok

CPAN.pm: Building T/TO/TONYC/Imager-File-JPEG-0.88.tar.gz

JPEG: building independently JPEG: main: includes not found - libraries found JPEG: Checking if the compiler can find them on its own JPEG: Test code failed: Can't link/include 'jpeglib.h', 'jpeg' OS unsupported: JPEG libraries or headers not found Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
TONYC/Imager-File-JPEG-0.88.tar.gz /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK Running make test Make had some problems, won't test Running make install Make had some problems, won't install Could not read metadata file. Falling back to other methods to determine prerequisites

Большое спасибо.

+0

ли у libjpeg вас установлен? В [Imager :: Install] содержатся подробные инструкции по установке (https://metacpan.org/pod/distribution/Imager/lib/Imager/Install.pod). –

ответ

2

Вам нужно установить "libjpeg-DEV",

sudo apt-get install libjpeg-dev 
+0

Это Allready установлено: '$ Sudo APT-получить установку libjpeg-DEV [Sudo] пароль для b0y: Чтение списков пакетов ... Готово дерева зависимостей Building Чтение информации о состоянии ... Готово libjpeg-DEV уже новейшая версия. 0 обновлен, 0 вновь установлен, 0 удален и 47 не обновлен. ' – user2676847

0

Для вашей ошибки:

"JPEG: building independently JPEG: main: includes not found - 
    libraries found JPEG: Checking if the compiler can find them on its 
    own JPEG: Test code failed: Can't link/include 'jpeglib.h', 'jpeg' OS 
    unsupported: JPEG libraries or headers not found Warning: No success 
    on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]" 

Ваш заголовок "jpeglib.h" ins't в вашем PATH, то это означает, что ваш компилятор не может его найти. Если вы используете Debian, как ОС, вы можете следовать инструкциям ниже:

echo "export LD_LIBRARY_PATH=/path to your lib/lib" >> ~/.bashrc 
    echo "export C_INCLUDE_PATH="/path to your include/include" >> ~/.basrc 
    $. ~/.basrc 
    $cpan install Imager::File::JPEG 

Если не работает,

$cpan 
>look Imager::File::JPEG 
$LD_LIBRARY_PATH="/path to your lib/lib" C_INCLUDE_PATH="/path to your include/include" perl Makefile.PL 
$make test 
$make install 
$exit