# PicDistinct **Repository Path**: cloudczheng/pic-distinct ## Basic Information - **Project Name**: PicDistinct - **Description**: 图片查重工具 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-23 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PicDistinct #### 介绍 图片查重工具 #### 程序说明 本程序使用腾讯元宝ai对话助手编写代码。提示词如下: 提示词1: 我的设计是这样的:输入一个路径,读取路径下的所有图片,计算他们的相似度。 计算思路如下:首先,计算所有图片的MD5,找到完全相同文件,相似度100%。 其次,计算所有图片的多种图像哈希,并赋予不同哈希一定权重,得出相似度。 再次,使用特征匹配算法分析高相似度图片,得出一个相似度结果。 最后,汇总三次分析结果,给出综合的相似度结果。评价一下我的设想,并给出你的优化 提示词2: 我决定使用python进行开发。创建了一个PicCalToolManager.py文件,其中包含如下功能函数: PicMD5 参数:string picpath 返回: 图片文件的md5 PicAHash 参数string picpath 返回 图片的均值哈希 PicDHash 参数 string picpath 返回 图片差异哈希 PicPHash 参数 string picpath 返回 图片感知哈希 PicWHash 参数 string picpath 返回图片小波哈希 帮我完成这个文件的内容 提示词3: 我创建了一个文件FeatureMatchToolManager,用来实现ORB图片特征匹配,帮我完成代码 提示词4: 假如我要设计一个桌面应用,用来查找电脑指定目录下的重复图片,这个应用的界面布局应该是怎样的? 提示词5: 按照这个格式绘制大体框架,编写python 界面代码,不实现具体功能 提示词6: 左侧面板 (控制区) 添加如下控件:目录选择(按钮),当前选择目录路径(文本),相似度阈值(滑块),选择图片哈希算法(下拉框,选项:ahash,dhash,phash,whash) 提示词7: 给目录选择按钮添加实际功能 提示词8: 在左侧面板 (控制区)中添加一个按钮“开始分析” 提示词9: 创建self.analyze_images(directory, threshold, algorithm)函数,实现如下功能: 1.获取目录directory下所有图片路径 2.遍历计算所有图片的md5,使用方法:core.PicCalToolManager.PicMD5() 3.记录md5相同的图片路径,记为 相似度100% 提示词10: 重写self.analyze_images(directory, threshold, algorithm)函数,实现如下功能: 1.获取目录directory下所有图片路径 2.遍历计算所有图片的md5,使用方法:core.PicCalToolManager.PicMD5() 3.记录md5相同的图片路径到一个数据结构中待用,记为 相似度100% 4.排除已记录图片,分析剩余图片 5.计算剩余图片的图片哈希,根据algorithm参数选择具体图片哈兮算法 algorithm=ahash,使用core.PicCalToolManager.PicAHash(path) algorithm=dhash,使用core.PicCalToolManager.PicDHash(path) algorithm=phash,使用core.PicCalToolManager.PicPHash(path) algorithm=whash,使用core.PicCalToolManager.PicWHash(path) 6.使用core.PicCalToolManager.calculate_similarity(hash1,hash2)计算所有的哈希相似度 7.根据 相似度阈值 参数threshold,记录大于threshold的图片路径和相似度到一个数据结构中待用 提示词11: 继续重写self.analyze_images(directory, threshold, algorithm)函数,实现如下功能: 1.获取目录directory下所有图片路径 2.遍历计算所有图片的md5,使用方法:core.PicCalToolManager.PicMD5() 3.记录md5相同的图片路径到一个数据结构中待用,记为 相似度100% 4.排除已记录图片,分析剩余图片 5.计算剩余图片的图片哈希,根据algorithm参数选择具体图片哈兮算法 algorithm=ahash,使用core.PicCalToolManager.PicAHash(path) algorithm=dhash,使用core.PicCalToolManager.PicDHash(path) algorithm=phash,使用core.PicCalToolManager.PicPHash(path) algorithm=whash,使用core.PicCalToolManager.PicWHash(path) 6.使用core.PicCalToolManager.calculate_similarity(hash1,hash2)计算所有的哈希相似度 7.根据 相似度阈值 参数threshold,记录大于threshold的图片路径和相似度到一个数据结构中待用 8.再次排除已记录的图片,分析剩余图片 9.使用core.FeatureMatchToolManager.calculate_similarity_score(path1,path2)计算剩余图片相似度 10.再次记录相似度大于threshold的图片路径 提示词12: 中间主区域 (结果展示区) 重新设计如下: 初始状态下为空白内容。点击 开始分析 ,分析完成后获得分析结果self.analysis_result, 现在要把结果展示在中间主区域 (结果展示区) 。 展示方式如下:中间主区域 (结果展示区) 可以上下滚动, 使用一个自定义控件展示相同图片组和相似图片组,点击图片在右侧面板 (预览/详情区)展示图片预览和图片信息 --- 个人学习使用,如有雷同,不胜荣幸 CloudCZh 2025年12月23日