Mendeteksi Gambar Duplikat dengan Python: Panduan Praktis
🔍 Mendeteksi Gambar Duplikat dengan Python: Panduan Praktis
Sering kali kita menyimpan banyak gambar di komputer, dan tanpa sadar beberapa gambar tersebut sebenarnya identik atau sangat mirip, hanya beda ukuran, format, atau metadata. Nah, bagaimana jika kita ingin membuat alat pendeteksi duplikat gambar otomatis menggunakan Python?
Berikut adalah panduan langkah demi langkah untuk membuat duplikat detector sederhana berbasis imagehash dan Pillow.
🧰 Library yang Digunakan
Sebelum mulai, pastikan kamu sudah menginstall library berikut:
pip install Pillow imagehash
-
Pillow: Versi modern dari PIL (Python Imaging Library) -
imagehash: Untuk menghitung hash dari konten visual gambar
🗂️ Struktur Folder
Misalkan kamu memiliki struktur seperti ini:
project-root/
├── duplikat-detector.ipynb
└── images/
├── foto1.jpg
├── foto2.jpg
└── ...
Semua gambar yang ingin dicek duplikatnya ada di folder images/, dan file notebook atau skrip detektornya berada di folder utama (project-root).
🧠 Konsep Deteksi Duplikat
Alih-alih hanya membandingkan nama file, kita membandingkan konten visual dari gambar menggunakan perceptual hash (phash). Jika dua gambar memiliki hash yang sangat mirip (selisih kecil), maka diasumsikan bahwa gambar tersebut kemungkinan besar duplikat.
🧑💻 Kode Lengkap: Duplikat Detector
⚙️ Bagaimana Cara Kerjanya?
-
Program membuka folder
images/. -
Untuk setiap gambar:
-
Gambar dibuka dengan
Pillow. -
Hash visual dihitung menggunakan
phashdariimagehash.
-
-
Hash disimpan dan dibandingkan:
-
Jika ada hash yang sama atau sangat mirip, gambar dianggap duplikat.
-
-
Hasil duplikat ditampilkan ke layar.
🔎 Apa itu phash?
phash atau Perceptual Hashing bukan sekadar fingerprint file biasa seperti md5, melainkan mempertimbangkan konten visual gambar. Jadi walaupun resolusi berbeda, tapi kontennya sama, hasil hash-nya akan mirip.
✅ Tips Tambahan
-
Kamu bisa sesuaikan ambang kemiripan (
hash_val - prev_hash <= 5) untuk hasil lebih sensitif atau longgar. -
Gunakan
Pathlibuntuk manipulasi path yang lebih bersih dan lintas sistem operasi. -
Ingin mengecek subfolder? Gunakan
rglob("*.jpg")daripathlib.
📌 Kesimpulan
Dengan pendekatan ini, kamu bisa mendeteksi gambar-gambar duplikat secara otomatis hanya dengan beberapa baris kode. Ini sangat berguna untuk membersihkan koleksi gambar, folder desain, atau dataset machine learning agar lebih efisien.
Komentar
Posting Komentar