Cette fois, je vais vous montrer comment utiliser python pour déterminer la similitude des images Quelles sont les précautions pour utiliser python pour déterminer la similitude des. images, comme suit C'est un cas pratique, jetons-y un coup d'œil.
Python est un exemple très simple de détermination de la similarité d'une image. Ce n'est qu'un exemple et la précision peut ne pas être très élevée. Présentez principalement le principe : convertissez d'abord l'image en une image en niveaux de gris de 12x12 pixels - obtenez l'échelle de gris moyenne de l'image - parcourez les 10x10 pixels à l'intérieur de l'image (supprimez le pixel environnant) - comparez chaque pixel avec la valeur moyenne
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)+'%'
Taille--si elle est grande, ajoutez 1 à la chaîne , sinon ajoutez 0 (ici je choisis de l'enregistrer sous forme de chaîne, il y a en fait plusieurs façons)--La prochaine étape consiste à parcourir le dossier L'image est sélectionnée, la similitude est comparée et la similitude est renvoyée
Je crois que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web PHP chinois !
Lecture connexe :
Cas de tri à bulles simple et bidirectionnel
Javascript utilisé pour télécharger des images Script
Exemple d'animation simple d'ondulation de l'eau avec clic jQuery
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!