Saya perlu cara sederhana dan cepat untuk membandingkan dua gambar untuk kesamaan. Yaitu saya ingin mendapatkan nilai tinggi jika mengandung hal yang persis sama tetapi mungkin memiliki latar belakang yang sedikit berbeda dan dapat dipindahkan / diubah ukurannya dengan beberapa piksel.
(Lebih konkret, jika itu penting: Satu gambar adalah ikon dan gambar lainnya adalah subarea dari tangkapan layar dan saya ingin tahu apakah subarea itu persis ikon atau tidak.)
Saya memiliki OpenCV di tangan tetapi saya masih belum terbiasa dengannya.
Satu kemungkinan yang saya pikirkan sejauh ini: Membagi kedua gambar menjadi 10x10 sel dan untuk masing-masing 100 sel, bandingkan histogram warna. Kemudian saya dapat mengatur beberapa nilai ambang yang dibuat dan jika nilai yang saya dapatkan di atas ambang itu, saya berasumsi bahwa mereka serupa.
Saya belum mencobanya seberapa bagus itu bekerja tetapi saya kira itu akan cukup baik. Gambar sudah cukup mirip (dalam kasus penggunaan saya), jadi saya bisa menggunakan nilai ambang batas yang cukup tinggi.
Saya kira ada puluhan solusi lain yang mungkin untuk ini yang akan bekerja lebih atau kurang (karena tugas itu sendiri cukup sederhana karena saya hanya ingin mendeteksi kesamaan jika mereka benar-benar sangat mirip). Apa yang kamu sarankan?
Ada beberapa pertanyaan yang sangat terkait / mirip tentang mendapatkan tanda tangan / sidik jari / hash dari sebuah gambar:
- OpenCV / SURF Bagaimana menghasilkan hash / sidik jari / tanda tangan gambar dari deskriptor?
- Sidik jari gambar untuk membandingkan kesamaan banyak gambar
- Deteksi Gambar Dekat-Gandakan
- OpenCV: Gambar Sidik Jari dan Bandingkan dengan Basis Data .
- lebih , lebih , lebih , lebih , lebih , lebih , lebih , lebih
Saya juga menemukan implementasi yang memiliki fungsi seperti ini untuk mendapatkan sidik jari:
- pHash
- imgSeek ( GitHub repo ) (GPL) berdasarkan kertas Fast Multiresolution Image Querying
- pencocokan gambar . Sangat mirip dengan apa yang saya cari. Mirip dengan pHash, berdasarkan tanda tangan gambar untuk semua jenis gambar, Goldberg et al . Menggunakan Python dan Elasticsearch.
- iqdb
- ImageHash . mendukung pHash.
- Deduplicator Gambar (gambar) . Mendukung CNN, PHash, DHash, WHash, AHash.
Beberapa diskusi tentang hash gambar persepsi: di sini
Agak offtopic: Ada banyak metode untuk membuat sidik jari audio. MusicBrainz , layanan web yang menyediakan pencarian berdasarkan sidik jari untuk lagu-lagu, memiliki ikhtisar yang baik dalam wiki mereka . Mereka menggunakan AcoustID sekarang. Ini untuk menemukan kecocokan yang tepat (atau sebagian besar tepat). Untuk menemukan kecocokan serupa (atau jika Anda hanya memiliki cuplikan atau derau tinggi), lihat Echoprint . Pertanyaan SO terkait ada di sini . Jadi sepertinya ini diselesaikan untuk audio. Semua solusi ini bekerja dengan sangat baik.
Pertanyaan yang agak lebih umum tentang pencarian fuzzy secara umum ada di sini . Misalnya ada hashing sensitif-lokalitas dan pencarian tetangga terdekat .