1 个稳定版本
使用旧的 Rust 2015
4.0.0 | 2020年10月26日 |
---|
#1496 in 算法
194 每月下载量
在 2 个包中使用 (通过 sn0int-std)
56KB
718 行
img_hash
现在在稳定的 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版本 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确表示,否则您有意提交以包含在作品中的任何贡献,根据 Apache-2.0 许可证的定义,均应按上述方式双许可,不附加任何额外条款或条件。
依赖项
~9MB
~142K SLoC