This document discusses image matching and summarizes several Python libraries for perceptual hashing and image matching including image-match, Elasticsearch, and otama. It provides code examples for generating signatures from images and searching an Elasticsearch index or Otama database for similar images. The author is a software engineer who develops Python projects for image matching and works for KLab Inc. in Osaka.
13. image-match
from elasticsearch import Elasticsearch
from image_match.elasticsearch_driver import SignatureES
es = Elasticsearch()
ses = SignatureES(es)
for filename in files:
ses.add_image(filename)
14. image-match
es = Elasticsearch()
ses = SignatureES(es, size=10, distance_cutoff=0.9)
#for o in ses.search_image(TARGET_FILE, all_orientations=True):
for o in ses.search_image(TARGET_FILE):
print(o)
15. otama
from otama import Otama
db = Otama.open(config)
db.create_database()
for filename in files:
key = db.insert(filename)
keystore[key] = filename
db.pull()
db.close()
16. otama
db = Otama(config)
for result in db.search(10, TARGET_FILE):
key = result['id']
print("sim=%.3f, file=%s" % (result['similarity'], keystore[key]))
print(db.exists(key))