Skip to content

fxue/node-phash

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-phash

node-pash is pHash bindings for node.js.

Phash is a library that will create a "perceptual hash" of media files, so similar files will return similar hashes. Typically to compare hashes, a simple Hamming distance between the two hashes is a good indicator of how similar two media files are.

Current version supports only image hashing. (no video & audio hashing)

Build Status

Installation

node-phash depends on CImg, pHash, ImageMagicK.

On Ubuntu:

sudo apt-get install cimg-dev libphash0-dev libmagickcore-dev

On OSX:

brew install phash imagemagick

Then, install using npm:

$ npm install phash

Functions

// asynchronous hash
imageHash(filename, function(err, hash));

// synchronous hash
var hash = imageHashSync(filename);

hammingDistance(hash1, hash2);

Usage

var pHash = require("phash");

pHash.imageHash("file.jpg", function(err, hash) {
    if (err) {
        throw err;
    }

    // hash is the pHash of file.jpg
});

var hashA = pHash.imageHashSync("a.jpg");
var hashB = pHash.imageHashSync("b.png");
var hammingAB = pHash.hammingDistance(hashA,hashB);
console.log("Hamming Distance A -> B: " + hammingAB);

About

Phash Bindings for Node.js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published