Python を使用して画像の類似性を判断する方法

php中世界最好的语言
リリース: 2018-03-08 13:47:55
オリジナル
4084 人が閲覧しました

今回は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 中国語 Web サイトの他の関連記事に注目してください。

関連記事:

単純なバブルと双方向バブルソートのケース

画像をダウンロードするためのJavaScriptスクリプト

単純なjQueryクリック水波紋アニメーションの例

以上がPython を使用して画像の類似性を判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!