AI智能
改变未来

Python实现图片相似度计算

图片相似度

_
概述

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

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

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

项目总述

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

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

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

_
项目实现

1、导入图片

# 读取函数,用来读取文件夹中的所有函数,输入参数是文件名def read_directory(directory_name):for filename in os.listdir(directory_name):strDic = directory_name + \"//\" + filenameimageList.append(strDic)

2、图片处理

# 读取函数,用来读取文件夹中的所有函数,输入参数是文件名def read_directory(directory_name):for filename in os.listdir(directory_name):strDic = directory_name + \"//\" + filenameimageList.append(strDic)

3、打印结果

for i in range(0, len(similar)):print(similar[i])lab = \'img\' + str(i)plt.plot(pilex[i], label=lab)_

结果展示

1、相似度结果

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

3、直方图展示

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Python实现图片相似度计算