Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

phash-im

1.0.1 • Public • Published

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

Install

npm i phash-im

DownloadsWeekly Downloads

19

Version

1.0.1

License

MIT

Unpacked Size

8.79 kB

Total Files

8

Last publish

Collaborators

  • avatar