一般采用均值hass值+汉明距离的方法:即获取全图像素平均值,然后比较,获得(0,1分布),然后转化为16进制,计算每张图与这些值得汉明距离 2)这里优化了算法,取每行像素的平均值,然后对 import cv2 import matplotlib.pyplot as plt import os import numpy as np # 计算方差 def getss(list): # 计算平均值 avg = sum(list) / len(list) # 定义方差变量ss,初值为0 ss = 0 # 计算方差 for l in list: ss += (l - avg) * (l - avg) / len(list) # 返回方差 return ss # 获取每行像素平均值 def getdiff(img): # 定义边长 Sidelength = 8 # 缩放图像 img = cv2.resize(img, (Sidelength, Sidelength), interpolation=cv2.INTER_CUBIC) # 灰度处理 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # avglist列表保存每行像素平均值 avglist = [] # 计算每行均值,保存到avglist列表 for i in range(Sidelength): avg = sum(gray[i]) / len(gray[i]) avglist.append(avg) # 返回avglist平均值 return avglist # 读取测试图片 path = 'D:\\JDNetDiskDownload\\data\\result'
jd 2018/8/12 将收集到的多方来源的图片样本进行图片去重处理,删除每个文件夹中一样的图片
最新推荐文章于 2024-08-08 07:14:26 发布
本文介绍了一种图片去重的方法,通过计算每行像素的平均值,然后用均值哈希结合汉明距离比较图片相似度。在Python中,利用OpenCV库对图片进行缩放、灰度处理,并计算方差,以此判断图片是否重复,重复图片将被删除。
摘要由CSDN通过智能技术生成