Unggulan

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?

  1. Program membuka folder images/.

  2. Untuk setiap gambar:

    • Gambar dibuka dengan Pillow.

    • Hash visual dihitung menggunakan phash dari imagehash.

  3. Hash disimpan dan dibandingkan:

    • Jika ada hash yang sama atau sangat mirip, gambar dianggap duplikat.

  4. 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 Pathlib untuk manipulasi path yang lebih bersih dan lintas sistem operasi.

  • Ingin mengecek subfolder? Gunakan rglob("*.jpg") dari pathlib.


📌 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

Postingan Populer