Cocokkan duplikat gambar dengan konten dan ganti namanya (dengan nama duplikat)

1

Saya memiliki 2 folder dengan masing-masing lebih dari 5.000 foto:

  • Folder 1: file asli dalam kualitas yang baik tetapi dengan nama yang dapat dibaca manusia (misalnya saigon_motorcycle_traffic.jpg)
  • Folder 2: file yang sama dalam kualitas sangat buruk (lebar 450px) tetapi dengan id bersih yang cocok dengan database (misalnya 562634.jpg).

Tujuannya adalah untuk mencocokkan gambar highres dengan ID basis data.

Pertanyaan saya: Apa cara tercepat untuk mengubah nama versi highres menjadi versi saigon_motorcycle_traffic.jpgyang lebih rendah 562634.jpg?


Saya telah mencoba banyak perangkat lunak (mis. Pembersih foto duplikat , VisiPics , XnView, DupliFinder, ...), mereka semua menemukan duplikatnya tetapi tidak satupun dari mereka menawarkan cara yang tepat untuk jenis renaiming atau fungsi ekspor yang sesuai.

Sunting: Saya belum mencoba skrip apa pun (sebagaimana tercantum dalam komentar) seperti yang saya ketahui tidak ada dan tidak menemukannya. Jika Anda tahu sesuatu, beri tahu saya.

Beberapa hal tidak akan berfungsi: mencocokkan dimensi gambar tidak akan berfungsi (sebagian besar gambar memiliki dimensi yang sama), mencocokkan tanggal pembuatan tidak akan berfungsi (itu semua kacau) dan melakukannya dengan tangan tidak akan berfungsi karena saya ingin jaga kesehatan mental saya ;-)

Eddie
sumber
Harap perhatikan bahwa Pengguna Super bukan layanan penulisan skrip. Jika Anda memberi tahu kami apa yang telah Anda coba sejauh ini (termasuk skrip yang Anda gunakan) dan di mana Anda macet, maka kami dapat mencoba membantu dengan masalah tertentu. Anda juga harus membaca Bagaimana cara saya mengajukan pertanyaan yang bagus? .
DavidPostill
Hai David, setelah membaca beberapa pertanyaan lain (dan sekarang setelah memeriksa tautan Anda) saya memutuskan bahwa itu adalah pertanyaan yang valid untuk SU. Saya masih berpikir begitu, tapi ya saya seorang pemula. Yang sedang berkata: Saya tidak mencari seseorang untuk menulis skrip untuk saya, tetapi setiap petunjuk terhadap suatu algoritma atau perangkat lunak sangat dihargai.
Eddie

Jawaban:

0

Saya akhirnya menulis rutin PHP (saya tidak akan memposting kode lengkap karena ini solusi yang benar-benar najis) yang melakukan trik.

Dengan menggunakan phasher, saya dapat mengulangi semua file gambar dan menemukan duplikat yang dicurigai (!): Setiap gambar ditransformasikan menjadi hash kecil (berdasarkan versi gambar 8x8). Hash ini kemudian dapat dibandingkan.

2 hal yang perlu diingat:

  • karena ini merupakan nested loop, penting untuk mendapatkan semua hash terlebih dahulu dan menyimpannya sebelum melakukan perbandingan yang sebenarnya. Kalau tidak, akan butuh selamanya.
  • pendekatan TIDAK memberikan hasil yang sempurna. Saya memiliki tingkat kesalahan kecil di jalankan pertama. Jadi masih ada beberapa pengecekan kesalahan yang harus dilakukan.
Eddie
sumber