python相册图片处理_Python实现图片相似度计算

图片相似度

_

概述

今天在用一个软件清理手机时,看到了一个比较好的功能:相似图片删除。软件识别出相册中类似的图片,删除相似图片,进而释放手机存储。

上网查了这个功能的基本实现算法,有挺多算法求图片相似度的,常见的有均值哈希算法、差值感知算法、感知哈希算法、单通道直方图等等,网上有具体实现的算法,此处我只演示单通道直方图。

本推文提到的所有图片均拍摄于武汉市。祝福武汉,祝福湖北,祝福中国。

项目总述

导入一个已知图片,计算各个图片与已知图片的相似度,并输出相似度。

具体计算策略为:导入图片、计算图片的直方图、图片归一化处理、利用compareHist()进行比较相似度。

最后打印相似度,然后输出直方图值,其中图像的x轴是指的图片的0~255之间的像素变化,y轴指的是在这0~255像素所占的比列。

_

项目实现

1、导入图片

# 读取函数,用来读取文件夹中的所有函数,输入参数是文件名

def read_directory(directory_name):

for filename in os.listdir(directory_name):

strDic = directory_name + "//" + filename

imageList.append(strDic)

2、图片处理

# 读取函数,用来读取文件夹中的所有函数,输入参数是文件名

def read_directory(directory_name):

for filename in os.listdir(directory_name):

strDic = directory_name + "//" + filename

imageList.append(strDic)

3、打印结果

for i in range(0, len(similar)):

print(similar[i])

lab = 'img' + str(i)

plt.plot(pilex[i], label=lab)

_

结果展示

1、相似度结果

python相册图片处理_Python实现图片相似度计算_第1张图片

2、相似图片(相似度0.89)

python相册图片处理_Python实现图片相似度计算_第2张图片

3、直方图展示

python相册图片处理_Python实现图片相似度计算_第3张图片

你可能感兴趣的:(python相册图片处理)