Crates.io | image_hasher |
lib.rs | image_hasher |
version | 2.0.0 |
source | src |
created_at | 2022-04-02 12:42:45.391594 |
updated_at | 2024-03-11 06:07:39.588735 |
description | A simple library that provides perceptual hashing and difference calculation for images. |
homepage | |
repository | http://github.com/qarmin/img_hash |
max_upload_size | |
id | 560921 |
size | 100,648 |
A library for getting perceptual hash values of images.
Thanks to Dr. Neal Krawetz for the outlines of the Mean (aHash), Gradient (dHash), and DCT (pHash) perceptual hash
algorithms:
http://www.hackerfactor.com/blog/?/archives/432-Looks-Like-It.html (Accessed August 2014)
Also provides an implementation of the Blockhash.io algorithm.
This crate can operate directly on buffers from the PistonDevelopers/image crate.
This is fork of img_hash library, but with updated dependencies.
I am not familiar with this library, so if you have a need/willingness to develop it, I can add you as a co-maintainer.
Add image_hasher
to your Cargo.toml
:
image_hasher = "2.0.0"
Example program:
use image_hasher::{HasherConfig, HashAlg};
fn main() {
let image1 = image::open("image1.png").unwrap();
let image2 = image::open("image2.png").unwrap();
let hasher = HasherConfig::new().to_hasher();
let hash1 = hasher.hash_image(&image1);
let hash2 = hasher.hash_image(&image2);
println!("Image1 hash: {}", hash1.to_base64());
println!("Image2 hash: {}", hash2.to_base64());
println!("Hamming Distance: {}", hash1.dist(&hash2));
}
In order to build and test on Rust stable, the benchmarks have to be placed behind a feature gate. If you have Rust nightly installed and want to run benchmarks, use the following command:
cargo +nightly bench
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.