4 releases
Uses new Rust 2024
| 0.1.5 | Sep 5, 2025 |
|---|---|
| 0.1.4 | Sep 4, 2025 |
| 0.1.3 | Sep 4, 2025 |
| 0.1.2 | Sep 4, 2025 |
#427 in Images
110 downloads per month
635KB
246 lines
image-find
A high-performance tool to find similar images using perceptual hashing.

Table of contents
Installation
From crates.io
cargo install image-find
Building from source
git clone https://github.com/imshymike/image-find.git
cd image-find
cargo install --path .
Usage
$ image-find
Usage: image-find <wanted_images_folder> <search_folder> [<similarity_threshold>] [<found_matches_folder>]
[!NOTE] The default similarity threshold is 90%.
The program analyzes all images in the search_folder directory and compares them against reference images stored in the wanted_images_folder. When matches are found that exceed the specified similarity_threshold, they are printed to the console. Optionally, you can provide a found_matches_folder path to automatically copy all discovered matches to a separate location for easy review and organization.
| Arguments | Type | Description | Example value |
|---|---|---|---|
wanted_images_folder |
Path | Directory containing reference images to find | wanted_images |
search_folder |
Path | Directory to search for similar images | all_images |
similarity_threshold |
Percentage | Minimum similarity score (0-100%) | 90 |
found_matches_folder |
Path | Optional output directory for matched images | found |
Output
CSV Report
A CSV file is generated in the directory where the program was executed containing all found matches with the following format:
| Column | Description | Example |
|---|---|---|
id |
Filename of the matched image with no extension | 200 |
file |
Full filename of the matched image | 200.jpg |
path |
Full path to the matched image | /images/200.jpg |
similarity |
Similarity score (0.0-1.0, 4 decimal places) | 0.9700 |
Example CSV output:
id,file,path,similarity
200,200.jpg,~/images/200.jpg,0.9700
341,341.png,~/images/341.jpg,1.0000
Demo GIF
The demo GIF is generated using vhs using the command vhs cassette.tape.
License
This project is licensed under the MIT license.
Dependencies
~13MB
~253K SLoC