phash-im
v1.0.1
Published
Perceptual image hashing provided by imagemagick.
Downloads
49
Maintainers
Readme
phash-im
Perceptual image hashing via imagemagick.
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:
- modern - based on an approach from 2011
- robust against a variety of attacks
- thoroughly tested
- easy to install - imagemagick has great cross-platform support
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