2013-08-29 23 views
12

Szukam sposobu, aby porównać dwa obrazy, aby zobaczyć, jak są podobne. Googling to daje mnóstwo efektów przetwarzania obrazu (kadrowanie, zmiana rozmiaru itp.), Ale nic, co mogłoby zrobić przybliżone porównania obrazów. Istnieje jedna biblioteka Node.js, ale jest to wersja 0.0.1 i opiera się na różnych pakietach systemowych innych firm, więc nie jest stabilna ani przenośna.Jak porównać dwa obrazy za pomocą Node.js

Coś wzdłuż tych linii:

var imgComparator = require('some-awesome-image-comparator-module'); 
// result would be between 1.0 and 0.0, where 1.0 would mean exact match 
var result = imgComparator.compare('/path/to/image/1.png', '/path/to/image/2.png'); 

Odpowiedz

3

Znalazłem tej biblioteki, które mogą być przydatne dla Ciebie

https://github.com/HumbleSoftware/js-imagediff

+0

dziękuję za link, wygląda obiecująco. – SergeyB

+0

Proszę, utrzymuj mnie na bieżąco, ponieważ nie sprawiłam, że to jeszcze działa :). – Dan

+0

Istnieje przykład użycia biblioteki w "bin/imagediff". Użyj wersji canvas modułu canvas jako imagediff, a najnowsza wydaje się być niekompatybilna. Przeczytaj instrukcję instalacji płótna i cairo. Utknąłem przez długi czas, ponieważ przegapiłem, że muszę dodać folder do mojej PATH. – luff

6

Istnieje również image-diff który wygląda bardzo obiecująco, to jest zrobione przez Uber.

var imageDiff = require('image-diff') 

imageDiff({ 
    actualImage: 'checkerboard.png', 
    expectedImage: 'white.png' 
}, function (err, imagesAreSame) { 
    // error will be any errors that occurred 
    // imagesAreSame is a boolean whether the images were the same or not 
    // diffImage will have an image which highlights differences 
}) 
+2

Czy to wymaga, aby obrazy były identyczne? Szukam porównania, jeśli dwa obrazy są podobne. tj. to samo zdjęcie tego samego budynku, ale nieco inne, ponieważ nie jest to samo zdjęcie. – chovy

+0

fwiw, image-diff to cienkie opakowanie wokół narzędzia "compare" imagemagick/graphicsmagick. – mrm

+0

Przestarzałe na rzecz [wygląda tak samo] (https://github.com/gemini-testing/looks-same) i [pixelmatch] (https://github.com/mapbox/pixelmatch). – krulik