#image #perceptual #hash #difference #hash-values

bin+lib img_hash_median

一个简单的库,为图像提供感知哈希和差异计算。包括中值 PHash

1 个稳定版本

使用旧的 Rust 2015

4.0.0 2020年10月26日

#1496 in 算法

Download history 96/week @ 2024-03-31 60/week @ 2024-04-07 53/week @ 2024-04-14 69/week @ 2024-04-21 96/week @ 2024-04-28 67/week @ 2024-05-05 55/week @ 2024-05-12 81/week @ 2024-05-19 70/week @ 2024-05-26 66/week @ 2024-06-02 67/week @ 2024-06-09 58/week @ 2024-06-16 43/week @ 2024-06-23 44/week @ 2024-06-30 39/week @ 2024-07-07 57/week @ 2024-07-14

194 每月下载量
2 个包中使用 (通过 sn0int-std)

AGPL-3.0-only

56KB
718

img_hash 构建状态 Crates.io 面板

现在在稳定的 Rust 上构建!(但需要 nightly 来进行基准测试。)

用于获取图像感知哈希值的库。

感谢 Dr. Neal Krawetz 提供了均值(aHash)、梯度(dHash)和 DCT(pHash)感知哈希算法的概述
http://www.hackerfactor.com/blog/?/archives/432-Looks-Like-It.html(2014年8月访问)

还提供了Blockhash.io 算法的实现

该包可以直接操作来自 PistonDevelopers/image 包的缓冲区。

用法

文档

img_hash 添加到您的 Cargo.toml

[dependencies.img_hash]
version = "3.0"

示例程序

 extern crate image;
 extern crate img_hash;
 
 use img_hash::{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));
 }

基准测试

为了在 Rust 稳定版上构建和测试,基准测试必须放在特性门后面。如果您已安装 Rust 夜间版并想运行基准测试,请使用以下命令

cargo bench --features bench

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确表示,否则您有意提交以包含在作品中的任何贡献,根据 Apache-2.0 许可证的定义,均应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~9MB
~142K SLoC