11 个不稳定版本 (3 个破坏性更新)
使用旧的Rust 2015
0.4.1 | 2017年4月24日 |
---|---|
0.4.0 | 2017年4月23日 |
0.3.4 | 2017年3月1日 |
0.3.3 | 2017年2月25日 |
0.1.5 | 2017年1月29日 |
#14 in #border
每月下载量 27
1MB
203 代码行
ENIMDA
基于熵的图像边框检测算法:检测图像每边的边框或空白偏移,支持动画GIF。
算法(简化版)
从顶部开始,对图像逆时针旋转,以保持感兴趣的一侧在顶部
- 获取图像高度的25%作为上块
- 获取与上块相同高度的下块
- 计算两个块及其差异的熵
- 将上块缩小1px
- 重复步骤2,直到达到图像边缘
- 边框位于熵差异最大的两个块之间
示例
找到图像边框
extern crate enimda; use std::path::Path; use enimda::enimda; fn main() { let path = Path::new("source.jpeg"); let borders = enimda(&path, Some(10), Some(512), Some(50), Some(0.25), Some(0.5), Some(false)).unwrap(); println!("{:?}", borders); }
测试
cargo test
依赖项
~13MB
~42K SLoC