ImageHash
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
4.0: Changed binary to hex implementation, because the previous one was broken for various hash sizes. This change breaks compatibility to previously stored hashes; to convert them from the old encoding, use the “old_hex_to_hash” function.
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.
Metadata
Release files for ImageHash 4.0
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-4.0.tar.gz | 296.4 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ImageHash-4.0-py3.5.egg | Legacy Egg format | - | - | Details |
| ImageHash-4.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
| ImageHash-4.0-py2.7.egg | Legacy Egg format | - | - | Details |
Total release size: 1.2 MB
Release files / ImageHash-4.0.tar.gz
| Download URL | ImageHash-4.0.tar.gz |
|---|---|
| Size | 296.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7d95534e32e7b9c949029cf9f8383f50fbc3f2246d030da9cd277a8a99d23a3
|
|
BLAKE2b-256 checksum How to use checksums |
76760f46a75bda3f4ca77f7fe917f4eff0c974155a1484b60ff9e3005ca4362b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / ImageHash-4.0-py3.5.egg
| Download URL | ImageHash-4.0-py3.5.egg |
|---|---|
| Size | 306.5 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
d6c1e4887f622f97833d78f68b4f7fff46e26802c331a6868ff0198edccec902
|
|
BLAKE2b-256 checksum How to use checksums |
6493f8ac24d3b877e724139ea2e3ce340a6ffc6debeee9104bdb27ca089ed3de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / ImageHash-4.0-py2.py3-none-any.whl
| Download URL | ImageHash-4.0-py2.py3-none-any.whl |
|---|---|
| Size | 295.6 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
f50b2427fc54b87ac7e73d7ba9e7a876a77384645563f225eed1d82e628d07fa
|
|
BLAKE2b-256 checksum How to use checksums |
5847e639093d67f54e59163f9d259575a10bd16e4d0ff3bb1259ba64b9c77a42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / ImageHash-4.0-py2.7.egg
| Download URL | ImageHash-4.0-py2.7.egg |
|---|---|
| Size | 305.6 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
7aedf61dc17e7da2986a61d06ded48e10cd4530d5ed876471608b85c9b48a4f0
|
|
BLAKE2b-256 checksum How to use checksums |
6997a2acdd251f9a05f855078b6f4a73c26ecc34996bb943e0485a146e331182
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |