news 2026/8/24 16:39:08

AntiDupl.NET 图片去重完全指南:10 分钟找出所有“其实是同一张“的图片

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AntiDupl.NET 图片去重完全指南:10 分钟找出所有“其实是同一张“的图片

AntiDupl.NET 图片去重完全指南:10 分钟找出所有"其实是同一张"的图片

【免费下载链接】AntiDuplA program to search similar and defect pictures on the disk项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl

同一场景的两张照片,一张 2.3MB、一张 480KB,文件名还不一样——你的硬盘里有多少这样的图?AntiDupl.NET 是一款免费开源的图片去重工具:它不看文件名和体积,而是按图片内容比对,既能找出完全重复的文件,也能识别压缩过、缩放过甚至旋转镜像过的相似图片,顺带把 JPEG 压缩过度、拍糊的劣质图标出来。适合照片库庞大的用户,全程本地运行,图片不出本机。

🖼️ AntiDupl.NET 工作原理:它为什么认得出"改过"的图

多数去重工具比的是文件哈希,体积稍有出入就判"不重复"。AntiDupl.NET 反过来:先把每张图片缩放到统一尺寸(默认32×32)、去掉色彩信息转成灰度,再逐像素计算两张图之间的亮度偏差,偏差低于阈值就判为重复。

这类似判断两个人是不是同一个人:先让两人都换上同尺码的衣服、卸了妆、站成同一个姿势,再比轮廓。那件"同尺码的衣服"就是 32×32 的灰度画布——所以同一画面即使压缩率不同、尺寸不同,也会被归进同一组。

比较算法分两档。默认的均方差算得快,但对大面积同色的图容易误报;SSIM 结构相似性能认出大幅裁剪、加过水印的图,速度更慢,官方建议归一化尺寸不低于 128×128 时使用。格式覆盖 JPEG、PNG、GIF、TIFF、BMP、WebP、HEIC/HEIF、AVIF、JXL、PSD、TGA、ICON 等 18 种,GIF 动图按第一帧比较。核心比对实现在 src/AntiDupl/。

🚀 AntiDupl.NET 快速上手:三步跑完第一次图片去重扫描

  1. 克隆仓库,或直接用编译好的版本:
git clone https://gitcode.com/gh_mirrors/an/AntiDupl

想自己编译的开发者,用 Visual Studio 2022(勾选 .NET 桌面与 C++ 工作负载)打开 src/AntiDupl.sln,vcpkg 会自动装好依赖。程序有经典 WinForms 和现代 WPF 两个界面版本,核心算法相同。 2. 点工具栏的Paths按钮,在Search标签页用Add folder添加要扫描的目录,子目录默认一并扫描,无需单独勾选。 3. 按绿色Start Search,进度窗口实时汇报;结束后右侧表格按组列出重复结果,每条都附带处置建议——删哪张、留哪张一目了然。

首轮不必碰设置:Compare 页阈值默认 5%(快速算法),Defects 页的块状与模糊检查默认关闭,想揪出劣质图就打开它们。结果列表很长时,Ctrl-A全选后点工具栏的Perform the recommendations of the computer,即可批量执行程序建议的删除动作。

🗂️ 扫描路径设置:Valid 与 Delete 标签页才是提速关键

Paths 窗口有四个标签页,分工各不相同。Search是扫描目录,也可以添加单张图片,用来回答"这一张到底有没有重复"(记得关掉同路径互相比较开关)。Ignore是排除清单,优先级高于 Search。

真正的价值在后两个。Valid是"扫过"清单:照片库 A 完整扫过之后把它登记进 Valid,新来的库 B 就只与 A 以及 B 内部互相比较,A 内部不再重复比。对持续整理照片的人来说,这一栏能把原本跑一小时的增量扫描压到几分钟。Delete则声明"要删的时候优先删这里的":遇到两张几乎一样的图,落在 Delete 目录里的那张会被优先标记删除;更有意思的是,如果备份盘里那张画质反而更好,程序会建议把它移动过来替换保留区的那张。

四个标签页的完整规则见 官方路径文档。

🎛️ 高级选项调优:SSIM 阈值与旋转检测怎么设

Options 窗口里有两项对结果影响最大,值得记住。比较算法 + 阈值:快速算法阈值范围 0–15%(默认 5%),SSIM 为 0–50%(默认 30%)。常见的工作流是先快速算法全库扫出候选,再切 SSIM 对可疑组复核——大面积同色的商品图、白底截图这类,误报会明显下降。

旋转与镜像检测默认关闭。开启后转 90°、水平翻转的图也能归进同一组,代价是比较次数直接翻 8 倍,十分钟的扫描会变成一小时,确有这类需求再开。

其余参数保持默认即可:线程数默认Auto,程序按核心数自动分配加载与比较线程,手动调高反而容易因磁盘 IO 排队变慢;Remember images会缓存结果,让重复扫描明显加速;误判库(Remember mistakes)默认开启,在结果里看到假重复时点预览区的Mark current result as a mistake,下次这一条就自动消失。

⚠️ AntiDupl.NET 常见问题:五个高频坑

  • 扫整个盘却什么都没查出来:C:\、D:\ 这类系统目录默认不进入扫描范围,先在 Search 页打开Search system folders/files再说。
  • 两张一模一样的图,却随机建议删哪张:完全相同的内容没有"更差"可判,随机挑选是正常行为。把备份盘填进Delete标签页,这个问题就永远不用纠结了。
  • 设置和误判库带不走:默认存放在 AppData 目录,启动时指定数据目录即可搬走:
AntiDupl.NET.exe -s "D:\Tools\AntiDuplData"

缓存与误判数据库会全部落在这个目录里,U 盘、NAS 随意迁移。

  • 删错了想反悔:删除先进回收站,撤销队列默认保留最近 10 步操作,直接撤销。唯一要留意的是队列长度调成 0 时属于直删,没有补救机会。
  • 想无人值守:同一作者还维护命令行版 AntiDuplX(Linux/Windows 可用,算法同源),定时任务里夜间跑它做增量扫描,白天用 GUI 版审核结果,是常见的搭配。

🗺️ 上手路线图

第一次:Paths 加目录 → 默认设置 → Start Search → 看结果、顺手标记误判。第二次:算法切 SSIM,对可疑分组复核,对比误报率变化。长期习惯:整理完的目录登记Valid,备份盘填Delete,形成自己的增量扫描流程。想深入代码,C# 界面层在 src/AntiDupl.NET.WinForms/,核心 C++ 算法在 src/AntiDupl/,两边对照读即可。

现在就去 Paths 窗口加上你的第一个扫描目录,十分钟后你就能看到硬盘里到底藏着多少"同一张"图。

【免费下载链接】AntiDuplA program to search similar and defect pictures on the disk项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 16:34:31

C++11函数模板默认参数:原理、应用与最佳实践

1. 项目概述:为什么C11的默认模板参数是个“大补丁” 在C98/03时代,函数模板和类模板的待遇是不平等的。类模板可以拥有默认模板参数,这为设计通用容器(如 std::vector )或策略类时提供了极大的便利,你可…

作者头像 李华
网站建设 2026/8/24 16:31:19

groq-appgen代码剖析:constructPrompt提示词模板的设计与实现原理

groq-appgen代码剖析:constructPrompt提示词模板的设计与实现原理 【免费下载链接】groq-appgen Project showcasing Llama 3.3 70B HTML codegen abilities 项目地址: https://gitcode.com/gh_mirrors/gr/groq-appgen groq-appgen 是一款基于 Groq 平台与 L…

作者头像 李华
网站建设 2026/8/24 16:31:16

3步完成 Burp Suite汉化:从满屏英文到全中文界面的完整指南

3步完成 Burp Suite汉化:从满屏英文到全中文界面的完整指南 【免费下载链接】BurpSuiteCN-Release BurpSuite汉化发布 项目地址: https://gitcode.com/gh_mirrors/bu/BurpSuiteCN-Release 你刚把代理配置好、抓下第一条请求,抬头一看菜单——Int…

作者头像 李华