Skip to content

transitive-bullshit/phash-im

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

phash-im

Perceptual image hashing via imagemagick.

NPM Build Status JavaScript Style Guide

There are many ways to compute perceptual image hashes, with the open source pHash library being one of the most popular. After researching a few dozen different approaches, we've settled on imagemagick's implementation, for the following reasons:

Install

  • Install a recent version of imagemagick >= v7 (brew install imagemagick on Mac OS).
npm install --save phash-im
# or
yarn add phash-im

Usage

const phash = require('phash-im')

const hash1 = await phash.compute('./media/lena.png')
const hash2 = await phash.compute('./media/barbara.png')

const diff = await phash.compare(hash1, hash2)

API

phash.compute(input)

Returns: Promise<Array<Number>>

Computes the perceptual hash of the given image. Note that the result will be an array of 42 floating point values, corresponding to the 7 image moments comprised of 2 points each across 3 color channels RGB (7 * 2 * 3 = 42).

input

Type: String Required

Path to an image file.

phash.compare(hash1, hash2)

Returns: Promise<Number>

Computes the L2 norm of the two hashes returnd by phash.compute (sum of squared differences).

hash1

Type: Array<Number> Required

Perceptual hash of first image.

hash2

Type: Array<Number> Required

Perceptual hash of second image.

Related

  • phash-imagemagick - Alternate version of this module which parses imagemagick output instead of using json.
  • pHash - A popular open source perceptual hash library.

License

MIT © Travis Fischer

Support my OSS work by following me on twitter twitter

About

Perceptual image hashing provided by imagemagick.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published