相似照片与连拍初筛
找出需要一起查看的照片,帮助用户挑选;不自动替用户决定哪张更好。字节相同和视觉候选分别标注,相似不等于重复,也不等于可以安全删除。
环境与首用
- Python 3.8+ 和 Pillow 9+;Windows/macOS/Linux 的普通本地目录可用。具备本机执行与文件工具的 AI 可扫描;无工具时可解释报告或给操作指引,不宣称扫描了用户文件。
demo在新输出目录生成四张合成图,制作固定示例,不读取真实照片。Pillow 没安装时先清楚说明依赖;按用户的环境安装授权处理,不假装工具已执行。- 首版支持 JPG/JPEG、PNG、WebP、BMP、TIFF、GIF;GIF/TIFF 只取首帧,HEIC/HEIF/AVIF 本版列为不支持,不强行改后缀。
工作流程
- 确认一个具体照片文件夹和独立的新报告目录。照片在本机处理;报告含文件名和照片缩略图,不上传私人报告。
- 用脚本扫描,默认最多 2000 张可读图片、报告最多展示 300 对;超限、无权限、云占位、链接和坏图逐项记录。限额不是全目录都已检查,零候选也不代表没有相似图。
- 算法先校正 EXIF 方向,再比较 64 位 dHash、宽高比与平均颜色;完全相同文件用 SHA-256 标记。默认差异阈值为 6,可在用户希望更宽松时调整,但增加阈值可能增加误报。
- 读取
report.html的并排缩略图,结合report.json中的路径、尺寸、格式限制和跳过项报告结果。离线页把縮略图内嵌,不依赖原始文件地址或网络。 - 用户决定保留哪张;需要删除/移动时另行生成明确文件清单并按实际授权操作。本工具没有修改照片的命令。不要凭小缩略图评价细节清晰度、艺术价值或“最好的照片”。
命令
python "{baseDir}/scripts/similar_photos.py" demo --out "D:/照片报告/固定样例-新建"
python "{baseDir}/scripts/similar_photos.py" scan --source "D:/照片/待挑选" --out "D:/照片报告/相似候选-新建"
python "{baseDir}/scripts/similar_photos.py" scan --source "D:/照片/待挑选" --out "D:/照片报告/宽松候选-新建" --distance 8 --limit 3000
输出必须是新目录且与照片目录不能相互包含。扫描会跳过异常大图或损坏图,不把它们记为已比较。本版不承诺检测裁剪、旋转、跨场景同一人物等所有相似情况;支持的格式以当前 Pillow 解码能力为准。