pythonの画像分類に興味を持ち過去の質問を調べましたが、
見つからなかったため、教えて欲しいです。
1つのフォルダ内の似た画像のファイル名をプリントしたいです。
imagehash(average_hash)を使った分類方法です。
下記コードで同一画像がプリント出来るようですが、
希望としては、average_hash 値<10 をプリントしたいです。
お手数おかけしますが、ご指導願います。
前提条件
5つの似た test-1〜5.jpg という名の画像が
"a"という名のフォルダに入っています。
test-1.jpg と test-4.jpg は全く同じ画像です。
該当のソースコード
python
1import os 2from PIL import Image 3import imagehash 4 5userpath = './a' # 検索フォルダ名'a' 6 7image_files = [] 8f = [os.path.join(userpath, path) for path in os.listdir(userpath)] 9for i in f: 10 if i.endswith('.jpg') or i.endswith('.png'): 11 image_files.append(i) 12 13imgs = {} 14for img in sorted(image_files): 15 hash = imagehash.average_hash(Image.open(img)) 16 if hash in imgs: 17 print('Similar image :', img, imgs[hash]) 18 else: 19 imgs[hash] = img 20 21#print 結果: Similar image : ./a\\test-4.jpg ./a\test-1.jpg
試したこと
下記コードの末尾に<10を入力しましたがエラーとなりました。
hash = imagehash.average_hash(Image.open(img))<10
補足情報(FW/ツールのバージョンなど)
python 3.7.7
ImageHash 4.3.1
回答1件
あなたの回答
tips
プレビュー