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

bin+lib image_hasher

一个简单的库,为图像提供感知哈希和差异计算

5 个稳定版本

2.0.0 2024 年 3 月 11 日
1.2.0 2023 年 6 月 2 日
1.1.2 2022 年 11 月 26 日
1.1.0 2022 年 10 月 20 日
1.0.0 2022 年 4 月 2 日

#48 in 图像

Download history 3294/week @ 2024-04-23 2647/week @ 2024-04-30 2827/week @ 2024-05-07 3308/week @ 2024-05-14 3068/week @ 2024-05-21 2730/week @ 2024-05-28 2232/week @ 2024-06-04 2685/week @ 2024-06-11 2546/week @ 2024-06-18 2480/week @ 2024-06-25 2245/week @ 2024-07-02 2491/week @ 2024-07-09 2365/week @ 2024-07-16 2347/week @ 2024-07-23 2012/week @ 2024-07-30 2102/week @ 2024-08-06

9,293 每月下载量
用于 7 crate

MIT/Apache

59KB
1K SLoC

Image Hasher

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

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

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

此 crate 可以直接从 PistonDevelopers/image crate 的缓冲区操作。

这是 img_hash 库的分支,但已更新依赖项。

我对这个库不熟悉,所以如果你有需要/愿意开发它,我可以添加你作为共同维护者。

用法

文档

image_hasher 添加到你的 Cargo.toml

image_hasher = "2.0.0"

示例程序

 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));
 }

基准测试

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

cargo +nightly bench

许可证

根据您的选择,许可协议为

贡献

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

依赖关系

~5.5MB
~111K SLoC