esimov/caire
Content aware image resize library
它解决的问题
Caire 解决了在不扭曲或裁剪重要内容的情况下调整图像大小(缩小或放大)的问题。传统缩放对所有像素一视同仁,因此人脸等关键对象可能会变形或丢失。Caire 使用一种称为接缝雕刻的技术,智能地移除或添加最不显眼的像素路径,保持重要部分完好无损。
工作原理
Caire 首先分析图像以检测边缘,创建能量图,突出显示视觉细节集中的区域。然后,它通过动态规划方法计算累积能量值,找到图像中从顶部到底部或从左到右的最不重要路径(接缝)。移除能量最低的接缝(或为放大而复制),并重复该过程,直到达到所需尺寸。该库还包括额外功能,如人脸检测以避免接缝穿过人脸,以及使用掩码来保护或移除特定区域的能力。
适用人群
Caire 适用于开发者、摄影师以及任何需要在自动化或命令行环境中进行高质量内容感知图像缩放的人。它使用 Go 编写,可以作为库或独立工具使用,易于集成到脚本、Web 服务或管道中。当保留图像的视觉完整性很重要时,例如在作品集生成、缩略图制作或批量处理中,它特别有用。
亮点
- 使用接缝雕刻进行内容感知缩放,保留重要区域。
- 支持垂直和水平方向的缩小和放大图像。
- 包含人脸检测以避免人脸变形。
- 支持多种输出格式:jpg、jpeg、png、bmp。
- 可以并发处理整个目录。
- 支持 stdin/stdout 管道,便于集成。
- 提供 GUI 预览模式,实时可视化过程。
- 支持保护和移除掩码,实现精细控制。
- 可以通过单个命令将图像正方形化或按百分比缩放。
相关
- 项目
- 项目
- 项目
- 项目