环境准备:
Python 2.7 or Python 3
需要安装的包
pytesseract
pytesser Pillow达成目标
比较两张图片是不是一个图片
如何运行
python file.py复制代码
代码如下
#!C:/Python27 & Python3 #coding=utf-8 # 1. pip install pillow# 2. pip install pytesseract# 3. pip install pytesser# Run: python comporePicture.py import pytesseract from pytesser import * from PIL import Image,ImageEnhance,ImageFilter import os import fnmatch import re,time import urllib, random #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) #比较100个字符有几个字符相同 def getMH(a,b): 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() ''' #图片地址自行替换bijiaotupian = ".//picture//kangshifu01.jpg"openfile = ".//picture"a=getImgHash(bijiaotupian) #被打开的文件夹中的图片files = os.listdir(openfile)#图片文件夹地址自行替换 for file in files: b=getImgHash(".//picture//"+str(file)) compare=getMH(a,b) print(file,u'相似度',str(compare)+'%') # if compare >= 90:# print(file,u'相似度',str(compare)+'%')# else:# pass复制代码