这次给大家带来如何使用python来判断图片相似度,使用python来判断图片相似度的注意事项有哪些,下面就是实战案例,一起来看一下。
python 判断图片相似度一个十分简单的示例,只是个例子,精度可能不是很高。主要介绍一下原理:先将图片转为 12x12像素的灰度图片--获取图片平均灰度--遍历图片内部10x10像素(去掉周围1像素)--比较每一个像素与平均值
from PIL import Image
import os
#import hashlib
def getGray(image_file):
tmpls=[]
for h in range(0, image_file.size[1]):#h
for w in range(0, image_file.size[0]):#w
tmpls.append( image_file.getpixel((w,h)) )
return tmpls
def getAvg(ls):#获取平均灰度值
return sum(ls)/len(ls)
def getMH(a,b):#比较100个字符有几个字符相同
dist = 0;
for i in range(0,len(a)):
if a[i]==b[i]:
dist=dist+1
return dist
def getImgHash(fne):
image_file = Image.open(fne) # 打开
image_file=image_file.resize((12, 12))#重置图片大小我12px X 12px
image_file=image_file.convert("L")#转256灰度图
Grayls=getGray(image_file)#灰度集合
avg=getAvg(Grayls)#灰度平均值
bitls=''#接收获取0或1
#除去变宽1px遍历像素
for h in range(1, image_file.size[1]-1):#h
for w in range(1, image_file.size[0]-1):#w
if image_file.getpixel((w,h))>=avg:#像素的值比较平均值 大于记为1 小于记为0
bitls=bitls+'1'
else:
bitls=bitls+'0'
return bitls
'''
m2 = hashlib.md5()
m2.update(bitls)
print m2.hexdigest(),bitls
return m2.hexdigest()
'''
a=getImgHash("./Test/测试图片.jpg")#图片地址自行替换
files = os.listdir("./Test")#图片文件夹地址自行替换
for file in files:
b=getImgHash("./Test/"+str(file))
compare=getMH(a,b)
print file,u'相似度',str(compare)+'%'大小--如果大则字符串加1不然加0(这里我选用字符串保存,其实方法很多的)--接下去就是遍历文件夹中图片了,比较相似度,返回相似度了
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
立即学习“Python免费学习笔记(深入)”;
本文档主要讲述的是Python开发网站指南;HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器 Python和其他程序语言一样,有自身的一套流程控制语句,而且这些语句的语法和其它程序语言类似,都有for, if ,while 类的关键字来表达程序流程。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
以上就是如何使用python来判断图片相似度的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号