Я пытаюсь использовать pdiffer в человечности. Это - интерфейс Python к инструменту PerceptualDiff. https://pypi.python.org/pypi/pdiffer
Я установил pdiffer, использующий зернышко (после того, как установка зернышка)
Я установил cmake
Я установил freeimage (sudo склонный - получают установку libfreeimage-dev),
Я создал PerceptualDiff после чтения меня файл.
Насколько я знаю, все - установка (не было никаких ошибок). Под Домом/Документами у меня есть свои два изображения и папка, названная pdiff, который имеет скомпилированный perceptualdiff файл в нем.
Я использовал интерпретатор Python в окне терминала
от pdiffer импортируют PDiffer
pdiff = PDiffer(bin='/home/username/Documents/pdiff/perceptualdiff')
result = pdiff('image1.png', 'image2.png')
никакие ошибки до последней команды
Traceback (новый вызов в последний раз):
File "<stdin>", line 1, in <module>
TypeError: 'PDiffer' object is not callable
Это - первый раз, когда я попытался использовать интерфейс Python для модуля C. Если Вы могли бы сказать мне, что я делаю неправильно (или сообщите мне то, что другую информацию я должен включать), я ценил бы ее.
Документация испытывает недостаток в основном объяснении.
Позволяют нам взглянуть сначала на Вашу ошибку. Вы создаете экземпляр PDiffer
класс и затем trie для вызова того экземпляра снова. Посмотрите этот очень упрощенный пример с той же ошибкой:
>>> class PDiffer:
... def __init__(self, *args, **kwargs):
... pass
...
>>> pdiff = PDiffer(bin="/path/to/bin")
>>> pdiff("image1.png", "image2.png")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'PDiffer' object is not callable
Однако документация дает 2 опции использовать pdiff. Создайте экземпляр PDiff
и дайте ему пользовательский путь к двоичному файлу или используйте функцию помощника pdiff
. Предоставление им то же имя переменной и использование их в том же блоке кода просто очень сбивают с толку. Это или один ИЛИ другой.
я должен был посмотреть на источник для наблюдения то, что продолжается. Необходимо использовать pdiff
метод PDiff
класс вместо этого. Вторым примером является ярлык на этот метод с пользовательским двоичным путем.
, Таким образом, рабочий пример был бы:
from pdiffer import PDiffer
pdiff = PDiffer(bin='/home/username/Documents/pdiff/perceptualdiff')
result = pdiff.pdiff('image1.png', 'image2.png')