A image hashing library written in Python. ImageHash supports:
average hashing (aHash)
perception hashing (pHash)
difference hashing (dHash)
wavelet hashing (wHash)
Rationale
Why can we not use md5, sha-1, etc.?
Unfortunately, we cannot use cryptographic hashing algorithms in our implementation. Due to the nature of cryptographic hashing algorithms, very tiny changes in the input file will result in a substantially different hash. In the case of image fingerprinting, we actually want our similar inputs to have similar output hashes as well.
Requirements
Based on PIL/Pillow Image, numpy and scipy.fftpack (for pHash) Easy installation through pypi.
Basic usage
>>> from PIL import Image
>>> import imagehash
>>> hash = imagehash.average_hash(Image.open('test.png'))
>>> print(hash)
d879f8f89b1bbf
>>> otherhash = imagehash.average_hash(Image.open('other.bmp'))
>>> print(otherhash)
ffff3720200ffff
>>> print(hash == otherhash)
False
>>> print(hash - otherhash)
36
The demo script find_similar_images illustrates how to find similar images in a directory.
Source hosted at github: https://github.com/JohannesBuchner/imagehash
Changelog
3.5: image data handling speed-up
3.2: whash now also handles smaller-than-hash images
- 3.0: dhash had a bug: It computed pixel differences vertically, not horizontally.
I modified it to follow dHash. The old function is available as dhash_vertical.
2.0: added whash
1.0: initial ahash, dhash, phash implementations.
Release files for ImageHash 3.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ImageHash-3.7.tar.gz | 294.6 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ImageHash-3.7-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
| ImageHash-3.7-py2.7.egg | Legacy Egg format | - | - | Details |
Total release size: 888.6 kB
Release files / ImageHash-3.7.tar.gz
| Download URL | ImageHash-3.7.tar.gz |
|---|---|
| Size | 294.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09346020334afc317f79fe162928418f4b2c7e7e053638033f60339d39788c50
|
|
BLAKE2b-256 checksum How to use checksums |
758d5c3e6c7bfed73e2d1d0050b972f48727cfbe9c00eb38cc23c202a9ff5df9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / ImageHash-3.7-py2.py3-none-any.whl
| Download URL | ImageHash-3.7-py2.py3-none-any.whl |
|---|---|
| Size | 293.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
f46a3313fdd1e5deb9f6e1cd73e842a4da23121bc9afda8842a0d34023050b3f
|
|
BLAKE2b-256 checksum How to use checksums |
3e53d0dbbbe33c16733f4266f88f5abc494f70d6aecccc8b84706ed17e22c829
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / ImageHash-3.7-py2.7.egg
| Download URL | ImageHash-3.7-py2.7.egg |
|---|---|
| Size | 300.6 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
8025f9f75760333f65a5218e3cb0653fb2e7a01b1965f286452ea708708623b9
|
|
BLAKE2b-256 checksum How to use checksums |
dde1965caee1f3939cc0553b63ab3700ba3f1dd25115e3520f911d225683080b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |