Benzerlik için iki görüntüyü karşılaştırmanın basit ve hızlı bir yoluna ihtiyacım var. Yani tam olarak aynı şeyi içeriyorlarsa ancak biraz farklı bir arka plana sahip olabilirler ve birkaç piksel tarafından taşınabilir / yeniden boyutlandırılabilirlerse yüksek bir değer elde etmek istiyorum.
(Önemli olursa, daha somut: Bir resim bir simge ve diğer resim bir ekran görüntüsünün alt alanıdır ve bu alt alanın tam olarak simge olup olmadığını bilmek istiyorum.)
Elimde OpenCV var ama hala buna alışkın değilim.
Şimdiye kadar düşündüğüm bir olasılık: Her iki resmi de 10x10 hücreye bölün ve bu 100 hücrenin her biri için renk histogramını karşılaştırın. Sonra bir miktar uydurma eşik değeri ayarlayabilirim ve elde ettiğim değer bu eşiğin üzerindeyse, benzer olduklarını varsayıyorum.
Henüz ne kadar iyi çalıştığını henüz denemedim ama sanırım yeterince iyi olurdu. Görüntüler zaten oldukça benzer (benim kullanım durumumda), bu yüzden oldukça yüksek bir eşik değeri kullanabilirim.
Sanırım bunun için az ya da çok işe yarayacak düzinelerce başka çözüm var (görevin kendisi oldukça basit olduğu için, benzerliklerini gerçekten çok benziyorlarsa tespit etmek istiyorum). Ne öneriyorsun?
Bir görüntüden imza / parmak izi / karma elde etme ile ilgili birkaç ilgili / benzer soru var:
- OpenCV / SURF Tanımlayıcılardan görüntü karması / parmak izi / imza nasıl oluşturulur?
- Birçok görüntünün benzerliğini karşılaştırmak için görüntü parmak izi
- Neredeyse Çoğaltılan Görüntü Algılama
- OpenCV: Parmak İzi Görüntüsü ve Veritabanına Karşı Karşılaştır .
- daha , daha , daha , daha , daha , daha , daha , daha
Ayrıca, bir parmak izi elde etmek için bu gibi işlevlere sahip olan bu uygulamalara tökezledim:
- pHash
- Hızlı Çoklu Çözünürlüklü Görüntü Sorgulama kağıdına dayanan imgSeek ( GitHub repo ) (GPL)
- görüntü eşleme . Aradığım şeylere çok benzer. PHash'e benzer şekilde, her türlü görüntü için görüntü imzasını temel alan Goldberg ve ark . Python ve Elasticsearch'ü kullanır.
- iqdb
- ImageHash . pHash'i destekler.
- Görüntü Tekilleştirici (imagededup) . CNN, PHash, DHash, WHash, AHash'i destekler.
Algısal görüntü karmaları hakkında bazı tartışmalar: burada
Biraz offtopik: Ses parmak izleri oluşturmak için birçok yöntem var. Şarkılar için parmak izi tabanlı arama sağlayan bir web hizmeti olan MusicBrainz , wiki'lerinde iyi bir genel bakışa sahiptir . Şimdi AcoustID kullanıyorlar . Bu kesin (veya çoğunlukla kesin) eşleşmeleri bulmak içindir. Benzer eşleşmeleri bulmak için (veya yalnızca bazı snippet'leriniz veya yüksek gürültünüz varsa) Echoprint'e göz atın . İlgili bir SO sorusu burada . Yani ses için çözülmüş gibi görünüyor. Tüm bu çözümler oldukça iyi çalışıyor.
Genel olarak bulanık arama hakkında biraz daha genel bir soru burada . Yöreye duyarlı karma ve en yakın komşu arama var .