Heim  >  Artikel  >  Web-Frontend  >  So verwenden Sie Python, um die Bildähnlichkeit zu bestimmen

So verwenden Sie Python, um die Bildähnlichkeit zu bestimmen

php中世界最好的语言
php中世界最好的语言Original
2018-03-08 13:47:554164Durchsuche

Dieses Mal zeige ich Ihnen, wie Sie Python verwenden, um die Ähnlichkeit von Bildern zu bestimmen. Welche Vorsichtsmaßnahmen gibt es für die Verwendung von Python, um die Ähnlichkeit von zu bestimmen? Bilder wie folgt Dies ist ein praktischer Fall, schauen wir uns ihn an.

Python ist ein sehr einfaches Beispiel für die Bestimmung der Bildähnlichkeit. Es ist nur ein Beispiel und die Genauigkeit ist möglicherweise nicht sehr hoch. Führen Sie hauptsächlich das Prinzip ein: Konvertieren Sie zuerst das Bild in ein 12x12-Pixel-Graustufenbild, ermitteln Sie die durchschnittliche Graustufe des Bildes, durchlaufen Sie die 10x10 Pixel im Bild (entfernen Sie das umgebende 1 Pixel) und vergleichen Sie jedes Pixel mit dem Durchschnittswert

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)+'%'

Größe – wenn es groß ist, fügen Sie 1 zur Zeichenfolge hinzu, andernfalls fügen Sie 0 hinzu (hier wähle ich, es als Zeichenfolge zu speichern, es gibt tatsächlich viele Möglichkeiten) – Der nächste Schritt besteht darin, den Ordner zu durchlaufen Das Bild wird ausgewählt, die Ähnlichkeit wird verglichen und die Ähnlichkeit zurückgegeben

Ich glaube, Sie haben die Methode beherrscht, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Verwandte Lektüre:

Einfache Blase und Zwei-Wege-Blasensortierfall

Javascript wird zum Herunterladen von Bildern verwendet Skript

Einfaches jQuery-Klick-Wasserwellen-Animationsbeispiel

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python, um die Bildähnlichkeit zu bestimmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn