Measure visual similiarity of a reference image to other images.
Project description
imagesearch
imagesearch measures visual similiarity between a reference image and a set of other
images. This can be used to search for a similar image in a large/deep directory structure.
Installation
pip install imagesearch
Examples
-
Compare a reference image to all images in a search path:
> imagesearch needle.jpg haystack\ 28 haystack\0.jpg 38 haystack\1.jpg 12 haystack\2.jpg 18 haystack\3.jpg 32 haystack\4.jpg 29 haystack\5.jpg 0 haystack\6.jpg 29 haystack\7.jpg 5 haystack\8.jpg 28 haystack\9.jpgIn this example,
haystack\6.jpgis most similar. -
Compare against a single image:
> imagesearch needle.jpg haystack\1.jpg 38 haystack\1.jpg -
Only return images with similarity less than or equal to 10:
> imagesearch needle.jpg haystack\ --threshold 10 0 haystack\6.jpg 5 haystack\8.jpg -
Return the first image found under the threshold (0, in this case) and stop searching immediately:
> imagesearch needle.jpg haystack\ -t 0 -1 0 haystack\6.jpg -
Specify a different algorithm:
> imagesearch needle.jpg haystack\ --algorithm colorhash ... -
Get more help:
> imagesearch --help ...
Visual Similiarity
imagesearch returns a nonnegative integer that quantifies the visual similarity between the
reference image and another image. It does this by creating an image fingerprint and looking at the
difference between them.
A critical feature of these fingerprints is that they can be numerically compared (by Hamming Distance). Images that are different will have large differences in their fingerprints, and vice versa
A 0 value indicates the highest level of similarity, or possibly a true match.
Values should be treated as opaque and relative. It is dependent on the algorithm used to create the fingerprints and your subjective criteria for what "similar" is.
This project uses the imagehash library to produce these fingerprints, and more information about the techniques can be found there.
Algorithms
All the fingerprinting algorithms in imagesearch come from imagehash. In imagesearch, you may specify which algorithm to use by passing the appropriate option value to the -a or --algorithm flag:
ahash: Average hashing (aHash)phash: 2-axis perceptual hashing (pHash)phash-simple: 1-axis perceptual hashing (pHash)dhash: Horizontal difference hashing (dHash)dhash-vert: Vertical difference hashing (dHash)whash-haar: Haar wavelet hashing (wHash)whash-db4: Daubechies wavelet hashing (wHash)colorhash: HSV color hashing (colorhash)
See this section of the imagehash documentation for examples of different methods producing the same fingerprint for different images. These are the analog to cryptographic hash collosions, so it's important to understand what kinds of scenarios may cause this!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file imagesearch-0.1.2.tar.gz.
File metadata
- Download URL: imagesearch-0.1.2.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.10 CPython/3.8.5 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4afd6f64757e7e81133f9fcf1297ab2e9e7c348a6005565be251596cb6767793
|
|
| MD5 |
9f81e3b3581fa7391ecb657258f732ef
|
|
| BLAKE2b-256 |
1379d47bc57ca96888a8e6a061e86382f2fad67079ad50fd827da363cf3127c1
|
File details
Details for the file imagesearch-0.1.2-py3-none-any.whl.
File metadata
- Download URL: imagesearch-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.10 CPython/3.8.5 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
070c632315fbf8856866fa803ddc83714440ddb0d3b271199651170d26ed4bab
|
|
| MD5 |
da73ba057adb5d22a90082288b0c44e7
|
|
| BLAKE2b-256 |
9cf58376ddccd579fab4e992bfd32bae3ffc46d8c1c259c11300abe03e39985c
|